es6-priomise

Promise是异步编程的一种解决方案,它有三种状态,分别是

  1. pending-进行中
  2. resolved-已完成
  3. 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) }
)
原文地址:https://www.cnblogs.com/avidya/p/7521811.html