【发布时间】:2018-08-05 03:40:47
【问题描述】:
我想动态创建一系列promise,动态地将其结果传递给下一个promise。
所以我这样做了(从文档中获取)
this.actions.reduce(Q.when, Q());
其中 this.actions 是一组返回承诺的函数。 [f1,f2,f3]。这很好用,我们有一个很好的动态创建的 Promise 序列。
我现在想做的事情有点复杂,找不到怎么做(但我相信这是可能的,我只是在这里遗漏了一些东西)。
我希望能够创建相同的东西,但同时执行多个承诺(我猜是 q.all 的东西) 这是解释: this.actions = [f1,[f2,f3],f4]
f1 被执行,它的结果被传递给 f2 和 f3。 f2 和 f3 同时执行,两个结果都完成后传递给 f4 f4 被执行,可以使用 f2&f3 结果
所以我们有一个与第一个示例一样的 Promise 序列,但该序列的某些元素可以是一组 Promise,将其所有结果传递给序列的下一个元素(另一个 Promise 或一组 Promise)。
我想这并不难,但我有点困惑如何构建它。
非常感谢!
【问题讨论】:
-
这毫无意义。承诺不是可以执行的动作或可以传递某些东西的动作,它是结果。那么
this.actions数组到底是什么? -
嗯,它是一个返回承诺的函数数组。我的问题不清楚吗? p1 => api call => get a result .then((result) => { p2(result) } ... 以此类推,当序列的一个 promise 完成时,下一个 promise 将得到它的结果。如果不清楚让我知道我可以在哪里更清楚。
-
没关系,但是你不应该写“其中
this.actions是一系列承诺。”并将它们命名为p1、p2等。 -
好的,但你知道我的问题是什么吗?我的意思是可以理解吗?
-
是的,我已经在写答案了……
标签: javascript promise q