一:Promise的定义。
从语法上说,Promise是一个对象,从它可以获取异步操作的消息。ES6规定,Promise对象是一个构造函数,用来生成Promise实例。
二:为什么要使用Promise。
Promise对象是用于异步操作的,它的多重链式调用,可以很好的避免一层一层的嵌套回调,省时省力。使用Promise,我们就可以利用then进行「链式回调」,将异步操作以同步操作的流程表示出来。
.then()的语法:Promise.prototype.then(onFulfilled, onRejected)
三:Promise的状态。
1,分类:
第一种:pending——》初始值,不是fulfilled,也不是rejected
第二种:fulfilled——》表示操作成功
第三种:rejected——》表示操作失败
2,状态变化:
Promise有两种状态改变的方式,既可以从pending转变为fulfilled,也可以从pending转变为rejected。
②一旦状态改变,就「凝固」了,会一直保持这个状态,不会再发生变化。
③当状态发生变化,promise.then绑定的函数就会被调用。
注意:Promise缺点:一旦新建就会「立即执行」,无法取消。
补充:
1,同步:
同步的意思是:当客户端发送请求给服务端,在等待服务端响应的请求时,客户端不能做其他的事情。当服务端做完了才返回到客户端。这样的话客户端需要一直等待。用户体验不好。
2,异步:
异步的意思是:当客户端发送给服务端请求时,在等待服务端响应的时候,客户端可以做其他的事情,这样节约了时间,提高了效率。