1、promise有3种状态:pending(进行中)、resolved/fulfilled(已完成)、erjected(已失败)
2、promise状态的改变:promise状态的改变只有2种情况,一是从pending变为fulfilled,二是从pending变成rejected,并且状态一旦改变就无法再次改变
3、基本用法:ES6规定,Promise对象是一个构造函数,用来生成Promise实例
const promist = new Promise(function(resolve,reject){//或者可以使用箭头函数的形式
if(/*异步操作成功*/){
resolve(value);
}else{
reject(error);
}
})
注意:
(1)实例化的Promise对象会立即执行
(2)resolve函数的作用是将Promise对象的状态从pending变为resolved,在异步操作成功时调用,并将异步操作的结果作为参数传递送出去
(3)rerject函数的作用是将Promise对象的状态从pending变为rejected,在异步操作失败时调用,并将异步操作报出的错误作为参数传递出去
4、Promise实例生成后,可以用then方法制定resolved和rejected状态的回调函数
promise.then(function(value){
//success
},function(error){
//failure
});
网友评论