一、promise是什么?
promise是异步编程的一种解决方案
1.主要是用于异步计算
2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
3.可以在对象之间传递和操作promise,帮助我们处理队列
二、promise的参数是什么?
promise接受一个函数作为参数,该函数的两个参数分别是resolve和reject,这两个参数都是回调函数,
1.resolve回调函数的作用:在异步操作成功时调用,并将异步操作的结果,作为参数传递出去。
2.reject回调函数的作用:在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去
三、promise的三个状态是什么
1.penging(进行中)初始状态
2.fulfilled(成功)
3.rejected(失败)
当promise状态发生改变,就会触发then()里的响应函数处理后续步骤,promise状态一经改变,不会再变
promise对象的状态改变,只有两种可能:从pending变为fulfilled或者从pending变为rejected,这两种情况只要发生,状态就会凝固了,不会再变了
四、promise如何使用
在es6中,可以使用三种办法创造promise实例(对象)
1.构造方法
let promies = new Promise((resolve, reject) => {
resolve(); //异步处理
});
promise构造函数接收一个函数作为参数,该函数的两个参数分别是resolve和reject,它们是两个函数,由javascript引擎提供,不用自己部署
2.通过promise实例的方法,promise.then方法返回的也是一个promise对象
promise.then(onFulfilled, onRejected);
3.通过promise静态方法,promise.resolve(),promise.reject()
var p = Promise.resolve();
p.then(function(value) {
console.log(value);
});