蓝鸟 - 混合每个()和所有()?

时间:2016-10-22 16:51:25

标签: javascript node.js promise bluebird

我刚开始使用蓝鸟,它真的很棒!但我想知道我是否可以做以下情况:

我有一系列的承诺,如果一切都好,他们会返回解决方案(对象)。但是我必须检查我的物品是否有一些属性以确保一切都很好,而且我必须在致电我的承诺后这样做。

我还需要知道每次通话的时间。我已经考虑过每次调用each()时都会增加的int,当我的int到达promisesArray.length - 1时,它就完成了,但是我已经看到Bluebird作为一种方法被调用了一切都完成后调用的all()。

可以将它们混合吗?就像在我的数组上做一个.each()来检查一切返回对象是否有该属性,然后做一个.all()来知道一切顺利吗?

1 个答案:

答案 0 :(得分:1)

您可以使用Promise.all获取所有承诺,然后如果所有承诺都包含您成功所需的财产,则返回Promise.resolve()Promise.reject()

Promise.all(promisesArray).then(function(results) {
    results.forEach(function(result) {
        // make the needed check for each result - for example: object.should.have.property('property')
    });
});