【发布时间】:2020-09-12 09:55:04
【问题描述】:
我使用 async+await 创建了我的快速应用程序。 但是完成这项任务花了很长时间。
async.parallel(
{
cars: function (callback) {
Car.findById(req.params.id).exec(callback);
},
},
async (err, results) => {
if (err) {
return next(err);
} else {
var paramsDel = { Bucket: "test-s3-may", Key: results.cars.image_id };
s3.deleteObject(paramsDel, function (err, file) {
if (err) {
return next(err);
}
s3.upload(params, function (err, data) {
if (err) {
return next(err);
}
console.log("go to the next step"); //lineA
});
});
var updated_car = await Car.findByIdAndUpdate(req.params.id, car, {});
res.redirect(updated_car.url);
}
}
);
当我继续执行此代码时,会立即显示 lineA(console.log("go to next step)。 之后,我必须等待近 1-2 分钟的重定向命令。
是等待的问题吗?我确信我的网速足以上传任何文件。
【问题讨论】:
-
如果您希望它们等待
upload调用完成,您应该在console.log调用之后立即移动以var updated_car = await Car.findByIdAndUpdate开头的两行。
标签: node.js mongodb express amazon-s3 async-await