promise,一个promise可以 then多次,因为,每次都返回一个新的 promise
abort
function withAbort(p1) {let fail = null;let p2 = new Promise((resolve, reject) => {// 先将 p2的 reject失败方法暴露出来fail = reject});const p = Promise.rece([p1, p2]); // race一个失败就是失败态p.abort = failreturn p;}const p = withAbort(new Promise((resolve, reject) => {setTimeout(() => resolve('ok'), 3000)}))p.abort() // 终止执行,虽然 abort终止了 promise的执行,但后面的代码还会执行p.then(data => {}).catch(err =>err)
如何中断 promise
promise中的链式调用如何中断?
中断 Promise 就是返回一个 等待的 promise
直接 return new Promise(() => {}) 既不成功,也不失败
new Promise((resolve, reject) => {// abortreturn new Promise(() => {})})
