我坚持以下几点:
脚本返回任意数字n
或数组,如下所示:
[["a"], ["b"], ["c"], ["d"]]
我需要使用 promise 遍历数组then()
,但由于我不知道会有多少元素,所以我最终这样做了:
var bundle_list = [["a"], ["b"], ["c"], ["d"]];
var x = bundle_list.reduce(function(current, next) {
console.log(current);
// requestBundle will also return a promise
return requestBundle(current)
.then(function(bundle_response) {
// do foo
console.log("CALLING NEXT")
console.log(next);
return RSVP.resolve(next);
});
})
x.then(function(last_response) {
return console.log("DONE")
});
我的问题是我的reduce/map
两个都在我的异步代码运行之前触发了所有迭代,所以我得到了current
控制台的 3 倍,然后是done
控制台。所以我所有的地图“循环”都会立即运行,结果会在稍后(也)一点点(太)后运行......
我正在使用这个RSVP实现,但它是 A+,所以应该不是问题。我一直在尝试按照此处提供的答案工作,但我无法使其正常工作。
问题:
是否可以使用任意数量的then
语句创建“then-chain”。如果是这样,一些指针表示赞赏!
谢谢!