之前我们讲过使用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的状态,也就不会执行任何回调了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。