温馨提示: 本文设置较短,预计阅读 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吧