【发布时间】:2017-07-02 16:06:11
【问题描述】:
我正在变得动态(每个运行时的承诺数量可以更改)承诺数组,现在我希望在每次解决或拒绝之后 处理返回的承诺 before 承诺数组将完成。
我尝试 promise all,但在所有承诺完成后它会继续。
如果(承诺的)数组不是动态的,那么我可以简单地使用这样的东西 但我不知道我在数组中有多少承诺,并且我希望在每个承诺都履行或......继续它的答案并且不要等到所有承诺都完成
firstMethod()
.then(secondMethod)
.then(thirdMethod);
我们正在使用 Q ...
有可能吗?
更新(示例)
假设我有一个承诺数组
[promise1,promise2,promise3, promiseN]
现在我希望 promise1 完成处理时用 then 处理它,而不是等待所有承诺都完成。
这里最大的问题是数组可以有 N 个承诺,我不知道在 RT 中我会得到多少承诺,直到我得到这个数组因此我不能简单地使用
更新 2(澄清一点 :-))棘手的部分...
如果我事先知道数组的大小,我可以简单地使用 then ,数组 5 链中的 5 个条目与 then 但这里棘手的部分是我事先不知道我将在承诺数组中拥有多少承诺....
【问题讨论】:
-
这个问题对你的意思不够清楚。更多的代码会更合适。有没有
promiseArray.map(promise => promise.then(...))解决不了的问题? -
你问的是承诺链吗?一些代码示例将有助于更好地理解问题。
-
@estus - 谢谢,我会添加额外的示例,您能否提供完整的示例 /jsfiddle,因为不确定我是否理解您放置的代码是如何工作的......
-
@estus - 添加示例请查看它是否能澄清问题。
-
请澄清您所说的“我希望在每个承诺都实现后或......继续回答它”的意思。在“类似这样”的示例中,您根本没有多个 Promise,而是有多个 方法。那么你的数组实际上包含什么?
标签: javascript node.js ecmascript-6 promise q