带有承诺/蓝鸟的平行猫鼬查询

Parallel mongoose queries with promises/bluebird?

本文关键字:查询 承诺 蓝鸟      更新时间:2023-09-26

我有一个使用猫鼬的nodejs/mongodb项目,还有Bluebird for promises。

这是我的问题:我有一个函数,它有时必须并行执行 1 个查询,有时必须并行执行 2 个查询,然后连接两个查询的结果。这是一个伪代码(因为我使用咖啡脚本,但这不相关):

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()
}

我知道如何使用异步执行并行任务,但是我不明白如何使用蓝鸟或猫鼬承诺来执行此操作。

谢谢

function(param) {
    return Promise.all([
        query1.exec(),
        param ? query2.exec() : null
    ]).nodeify(callback);
}