promise是什么?
promise对象本质上其实是一个构造函数,就是用来解决异步编程,主要用于异步计算,解决了回调地狱的问题,不是多重嵌套,而是链式调用,使用.then方法,就是针对回调函数的改进
promise的三个状态是什么?
1.pending初始状态
2.fulfilled操作成功状态
3.rejected操作失败状态
Promise对象的状态改变只有两种可能:
从pending变为fulfilled,即从初始状态变为成功状态
从pending变为rejected,即从初始状态变为失败状态
这两种情况只要发生,状态就凝固了,不会再变了。(状态改变不可逆)
promise有哪些参数?
promise接受一个函数作为参数,函数有两个参数(resolved,rejected)
resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;
reject函数的作用是,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。
用法:
var promise = new Promise((resolve, reject) => {/* executor函数 */
// ... some code
if (/* 异步操作成功 */){
resolve(value);
} else {
reject(error);
}
});