【发布时间】:2015-04-13 18:14:23
【问题描述】:
这是我的代码:
var promiseResult = new BBpromise(function(resolve, reject){
console.log(1)
// some actions
setTimeout(function(){
resolve();
}, 2000);
}).cancellable().catch(BBpromise.CancellationError, function(e){
console.log(e);
});
promiseResult.then(function(){
console.log('AYYYY');
});
promiseResult.cancel(new BBpromise.CancellationError()).then(function(s){
console.log('canceled ?');
});
我得到以下输出:
顺便说一句.. 输出似乎是即时的。好像只要跳那个决心。
1
{ [CancellationError: cancellation error] __stackCleaned__: true }
AYYYY
cancelled ?
它说..“stactCleaned: true”所以我猜这意味着所有的功能都被清理了。不过好像我错了
所以我的问题:
- 为什么当我调用 cancel() 时,如果 promise 被取消,我会在输出中看到“AYYYY”。
-
cancel 到底在做什么?在这种情况下,cancel 到底在做什么? - 有没有办法取消 Promise 内容的执行或 Promise 的传播?
【问题讨论】:
标签: javascript promise bluebird cancellation