使用promises / bluebird进行并行mongoose查询?

时间:2015-01-07 08:40:13

标签: javascript node.js mongoose promise bluebird

我有一个使用mongoose的nodejs / mongodb项目,还有蓝鸟用于承诺。

这是我的问题:我有一个函数,有时必须执行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()
}

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

谢谢,

1 个答案:

答案 0 :(得分:1)

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