📝实现一个 Promise(3)
关于 Promise 的其它问题
1. 如何停止一个 promise 链?
return new Promise(() => { })// 将其封装成一个更有语义的函数,提高可读性
Promise.cancel = Promise.stop = function () {
return new Promise(() => { })
}new Promise((resolve, reject) => {
resolve(35)
}).then((value) => {
// ...这里发生了严重错误
return Promise.stop() // 返回一个永远 pending 的 promise
}).catch()
.then()
.then()
.catch()
.then()2. 链上最后一个 promise 出错了怎么办?
2.1 新增 done()
done()2.2 完善 reject 逻辑
reject 逻辑Last updated