promise?
一、什么是promise?
promise是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
从语法上说,promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。
Promise是一个构造函数,这个回调函数中放的是异步的操作,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。
对于一个异步操作来说执行是需要时间的,所以一开始promise是一个pending初始状态,到了一定的条件就会变成fulfilled(成功)或者reject(失败的状态),在成功时我们执行resolve回调函数,相当于.then里的回调,失败时执行reject回调函数,相当于.catch里的回调。
promise就是把原来的回调函数嵌套在里面的写法变成了链式写法(.then的写法)
promise是es6 中专门用来处理异步回调的,可以解决地狱回调,其中地狱回调指一段代码嵌套了很多层的回调函数。
二、promise的三种状态:①pending 初始状态、②fulfilled 成功状态、③rejected 失败状态,
这三种状态只有异步操作的结果可以决定当前是哪一种状态,其他任何操作都无法改变这个状态。
Promise的状态一旦改变,就不会再变,任何时候都可以得到这个结果,状态不可以逆,只能由