使用Node.js将异步库与MongoDB一起使用

时间:2019-06-06 07:06:30

标签: node.js mongodb asynchronous

当我进行API调用时,我想使用MongoDB更新2个单独的集合。官方的处理方式是使用事务,但是由于这是目前的原型,我将仅使用2个单独的函数调用来更新每个集合。

这是我在做什么:

 async.waterfall([
    function(callback) {
        callback(null);
    }, function(callback) {
       connectToDatabase(MONGODB_URI)
      .then(db => updateDocument1(arguments))
      .then(result => {
        callback(null);
      });
    }
    , function(callback) {
       connectToDatabase(MONGODB_URI)
      .then(db => updateDocument2(arguments))
      .then(result => {
        callback(null);
      });
    , function(err, result) {
       callback(null, null)
    }
  ])

但是以某种方式,它不执行updateDocument2。另外,updateDocument1在过程的中间停止,因此没有文档被更新。 你知道为什么吗?还有谁知道更好的方法吗?

1 个答案:

答案 0 :(得分:1)

  

异步并行:并行执行函数,而不依赖于   其他功能

     

异步系列:按顺序执行函数(一个接一个)

     

异步瀑布:首先执行函数,然后传递输出   第一个功能作为下一个功能的输入

现在就您而言:如果更新两个不依赖的集合,则可以使用异步并行