【发布时间】:2015-12-17 03:08:37
【问题描述】:
我无法控制执行流程。这是node.js, bluebird, poor control of execution path 和node.js table search fails with promises in use 的后续版本。从 console.log 打印输出来看,我的递归例程工作得很好,除了第一次调用 resolve() (第 n 次递归调用的信号)给不应获得绿灯的后续代码开了绿灯直到第一次调用递归例程调用resolve()。事实证明,对递归例程的第一次调用提供了我想要报告的答案,但是当它报告它时,后续代码不再监听它,并且正在与“未定义”的答案一起幸福地运行。不好。
在这里分享我的代码太长了。我试图为这个问题编写一个小模型,但没有找到复制行为的因素组合。
听起来很熟悉?你如何对 Promise 及时发布后续代码保持适当的控制?
我想也许对例程的第一次调用可以启动一个传递给 Promise.all 的数组,之后的调用会向该数组添加另一个条目。我没试过。疯了吗?
【问题讨论】:
-
如果你不想在这里贴代码墙,你能把你的代码贴在小提琴里吗?没有代码很难提供帮助。
-
当然是一个有效的观点。由于其他原因,小提琴选项是不可能的。对不起。无论如何,谢谢。
标签: javascript node.js recursion bluebird