Promise 在ES6中可以直接使用:
var promise = new Promise(function(resolve, reject) {
// 异步操作的代码
if (/* 异步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
Promise构造函数的参数是一个函数,这个参数函数的两个参resolve和reject也是JavaScript提供,可以认为是固定写法。
当执行成功,Promise对象的状态会从未完成(Pending)
变为成功(Resolved)
,这一步就是resolve函数所做的事情;反之执行reject
函数,将Promise对象的状态变为失败(Rejected)
,将错误作为参数传出去。
Promise实例生成后,可以用then方法分别指定Resolved和Rejected状态的回调函数:
promise.then(function(value){
//成功回调
},function(error){
//失败回调 一般使用 console.error(error)
})
指定多个回调函数的时候,依次在后面添加. then()即可,失败回调只写在最后一个.then回调里。