乐趣区

关于javascript:通过resolve和reject控制promise

之前咱们讲过应用 Promise.race 实现超时机制勾销 XHR 申请
当初咱们来讲个简略,好玩且实用的,通过将 resolve 和 reject 函数赋值为变量,而后通过变量来管制 Promise 行为。
间接上代码

var rejectPromise,resolvePromise;
new Promise((resolve,reject)=>{
  rejectPromise = reject;
  resolvePromise = resolve;
}).then(res=>{console.log('success')}).catch(res=>{console.log('fail')})

咱们通过 rejectPromise,resolvePromise 就能够在任意中央管制这个 Promise 了。
当然只有咱们执行了 rejectPromise,resolvePromise 中的任意一个,该 Promise 对象的状态就曾经变了,再调用 rejectPromise 或 resolvePromise 都不会扭转 Promise 的状态,也就不会执行任何回调了

退出移动版