Bluebird - 混合 each() 和 all()?
Bluebird - Mixing each() and all()?
我刚开始使用 Bluebird,它真的很棒!但我想知道我是否可以做以下场景:
我有一系列的承诺,如果一切都好,他们 return 解决(对象)。但我必须检查我的对象是否有一些 属性 以确保一切正常,并且我必须在调用我的承诺后执行此操作。
而且我还需要知道每次通话何时完成。我考虑过一个每次调用 each() 时都会递增的 int,当我的 int 达到 promisesArray.length - 1 时,它就完成了,但我已经看到 Bluebird 作为一种名为 all() 的方法被调用一切都完成了。
可以混合使用吗?就像在我的阵列上做一个 .each() 来检查是否所有 return 对象都有那个 属性 然后做一个 .all() 来知道一切顺利吗?
您可以使用 Promise.all
获取所有承诺,然后 return 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')
});
});
我刚开始使用 Bluebird,它真的很棒!但我想知道我是否可以做以下场景:
我有一系列的承诺,如果一切都好,他们 return 解决(对象)。但我必须检查我的对象是否有一些 属性 以确保一切正常,并且我必须在调用我的承诺后执行此操作。
而且我还需要知道每次通话何时完成。我考虑过一个每次调用 each() 时都会递增的 int,当我的 int 达到 promisesArray.length - 1 时,它就完成了,但我已经看到 Bluebird 作为一种名为 all() 的方法被调用一切都完成了。
可以混合使用吗?就像在我的阵列上做一个 .each() 来检查是否所有 return 对象都有那个 属性 然后做一个 .all() 来知道一切顺利吗?
您可以使用 Promise.all
获取所有承诺,然后 return 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')
});
});