学透Promise 之为什么我建议你使用 (fulfill,reject) ?

193 阅读1分钟

温馨提示: 本文设置较短,预计阅读 3分钟就可学会

1、promise 基本构造形式

  • 先解释几个 术语 决议 resolve 完成 fulfill 拒绝 reject

  • promise 参数 为什么我建议使用 (fulfill,reject)

  var p = new promise(function () {
         //x()  用于完成
        //y()  用于拒绝 ...拒绝里面可写拒绝理由
     })

2、resolve 既可能表示 完成 也可能表示拒绝

  • 第二个比较重要的事情是 Promise.resolve(...)会传入一个真正的Promise直接返回或者传入thenable会展开

    var rejectedTs = {
        then: function (resolved, rejected) {
            rejected("ops")
        }
    }

    var rejectedTp = Promise.resolve(rejectedTs)
    console.log(rejectedTp) 
    //Promise {<pending>}  [[PromiseState]]: "rejected" [[PromiseResult]]: "ops"

3、再来一个例子说明一下这个情况

var rejectTs = new Promise((resolve, reject) => {
        resolve(Promise.reject('ops')) //传入的是一个 rejected状态的promise 
    })

    rejectTs.then(
        function fulfill() {
            // 永远不会执行到这个地方
        },
        function rejected(err) {
            console.log(err) // ops
        }
    )

  • 好了 大功告成 放心使用 fulfill和reject吧