如何在列表中添加更多承诺时如何等待“所有”承诺?

时间:2016-08-08 20:53:26

标签: javascript coffeescript promise bluebird

每个承诺都是针对数据库的。 我正在深入研究关系数据库。 返回某些内容的每个选项可能会触发更多所需的选择。

所以......我有许多未知的承诺等待。 当所有的承诺都完成并且列表中没有添加新的承诺时,我才真正“完成”。

我的“db”对象保留了一个内部的promises数组,并提供了一个“wait()”函数来等待所有这些,但我不知道它什么时候真的完成了,所以我最终这样做了:

db.wait().then ->
    db.wait().then ->
        db.wait().then ->
            db.wait().then ->
                db.wait().then ->
                    console.log "finished waiting"

哪个有效,但仅仅因为我的“等级”数量有限。 (如果“级别”的数量无限制怎么办?)

是否存在用于累积promises的现有模式,其中处理程序可能会向列表添加更多的promise?

0 个答案:

没有答案