Promise是异步编程的一种解决方案,它有三种状态,分别是
- pending-进行中
- resolved-已完成
- rejected-已失败
状态一旦改变,就无法再次改变状态,这也是它名字promise-承诺的由来
声明一个promise对象
// 方法1
let promise = new Promise ( (resolve, reject) => {
if ( success ) {
resolve(a) // pending ——> resolved 参数将传递给对应的回调方法
} else {
reject(err) // pending ——> rejectd
}
} ) // 方法2
function promise () {
return new Promise ( function (resolve, reject) {
if ( success ) {
resolve(a)
} else {
reject(err)
}
} )
}
Promise.prototype.then()
promise.then(
() => { console.log('this is success callback') },
() => { console.log('this is fail callback') }
)
Promise.prototype.catch()
promise.then(
() => { console.log('this is success callback') }
).catch(
(err) => { console.log(err) }
)