ES6中的Promise
Promise对象是一个构造函数,用来生成构造实例。
const promise = new Promise((resolve, reject) => {
if('success'){
//resolve处理
resolve(value)
}else {
//reject处理
reject(error)
}
})
Promise函数的两个参数分别为 resolve 和 reject 两个函数,Promise接受一个函数作为参数。
reslove
函数将 Promise 的状态从 pending 变为 resolved,将异步操作成功时的调用结果作为参数返回。而reject
函数则是将异步操作失败后报出的错误作为参数传递出去。
Promise 实例生成后,可以用then
方法指定状态为 resolved
和rejected
的回调函数。
promise.then((value) => {
//resolved状态,即成功
}, (error) => {
//rejected状态,即失败
})
Promise新建后会立即执行,无法中途取消。如果不设置回调函数,Promise 内部抛出错误无法反映到外部。当处于pending 状态时,无法知道进行到哪一步,以上均是Promise的缺点。当然,Promise 也有其独特的优点:(1)对象的状态的不受外界影响。(2)状态一旦发生改变,就不会再变了,任何时候都可以得到这个结果。