【发布时间】:2016-05-25 07:37:33
【问题描述】:
我正在使用以下可以正常工作的代码,
var aa = createA(val, 1000);
var bb = createB(val2, 500);
Promise.all([aa, bb])
.spread(function(v1, v2) {
console.log("im Here")
}).catch(function() {
aa.cancel()
现在,当我需要用 aa 在承诺中做某事时,我可以喜欢 aa.cancel(); 等,现在的问题是我需要将其更改为
接下来,让我说我在循环中,需要在里面获取值,那么我该如何在 catch 中执行 cancel?
Promise.all([createA(val, 1000), bb])
.spread(function(v1, v2) {
console.log("im Here")
}).catch(function() {
【问题讨论】:
-
您无法取消没有参考的 Promise。就像您不能在没有参考的对象上调用方法一样。
-
以同样的方式创建它,但要确保考虑到循环和闭包
-
@JaromandaX - 您能否提供示例作为答案?
-
@MadaraUchiha - 但假设我需要将参数传递给这个承诺(我已经传播了之前提供的价值和承诺所有之后......),我应该如何克服这个?跨度>
-
最重要的是,您不能取消已经完成的承诺。
标签: javascript promise bluebird cancellation