使用 promises/bluebird 的并行猫鼬查询?
Parallel mongoose queries with promises/bluebird?
我有一个 nodejs/mongodb 项目使用 mongoose,还有 bluebird for promises。
这是我的问题:我有一个函数有时必须并行执行 1 个查询,有时必须并行执行 2 个查询,然后加入两个查询的结果。这是一个伪代码(因为我使用的是 coffeescript,但这并不相关):
function(param) {
// 1st query
query1.exec
// 2nd query, should be done in parallel with the 1st
if (param)
query2.exec
// process requiring result from both queries
callback()
}
我知道如何使用异步执行并行任务,但是我不明白如何使用 bluebird 或 mongoose promises 执行此任务。
谢谢,
function(param) {
return Promise.all([
query1.exec(),
param ? query2.exec() : null
]).nodeify(callback);
}
我有一个 nodejs/mongodb 项目使用 mongoose,还有 bluebird for promises。
这是我的问题:我有一个函数有时必须并行执行 1 个查询,有时必须并行执行 2 个查询,然后加入两个查询的结果。这是一个伪代码(因为我使用的是 coffeescript,但这并不相关):
function(param) {
// 1st query
query1.exec
// 2nd query, should be done in parallel with the 1st
if (param)
query2.exec
// process requiring result from both queries
callback()
}
我知道如何使用异步执行并行任务,但是我不明白如何使用 bluebird 或 mongoose promises 执行此任务。
谢谢,
function(param) {
return Promise.all([
query1.exec(),
param ? query2.exec() : null
]).nodeify(callback);
}