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');
答案 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