MongoDB mongoose findOneAndUpdate()等待不等待。 A3在A2之前运行

时间:2020-06-01 07:22:17

标签: mongodb mongoose async-await

A3日志在A2之前运行。我该如何解决?我想等到更新返回并将结果用于下一个逻辑。预先感谢。

const MongoClient = require("mongodb").MongoClient;

console.log('A1');
   // Inserting into DB
   await db.collection(companyCollection).findOneAndUpdate({"_id": new mongo.ObjectID(companyId)}, {$set: company}, {upsert: false}, await async function (err, result) {
      console.log('A2');
      let resultRes = null;
      if (err) {
         resultRes = { success: false };
      } else {
         resultRes = { success: true };
      }
      return callback(err ? true : false, resultRes);
 });
console.log('A3');

1 个答案:

答案 0 :(得分:1)

.pipe(through.obj(function(url, enc, done){ if(!url) return done(); request.head(url, (err, response)=>{ this.push(url + ' is ' + (err ? 'down' : 'up') + '\n'); done(); }); })) 有两个签名,要么返回一个Promise,要么调用一个回调。您的版本使用了回调版本,因此添加this是没有意义的,因为不会返回任何承诺。

这是一个使用promise语法的简单重写:

findOneAndUpdate