【发布时间】:2019-06-20 01:18:54
【问题描述】:
我正在使用findByIdAndRemove mongoose 查询方法执行删除操作,并希望确保返回已删除的文档。我用谷歌搜索它,发现我们向findByIdAndRemove 传递了一个回调,其中我们传递了err, doc args,如果删除成功,则删除的值将在 doc 中返回,我们可以从 fn 调用返回。但我对async and await 有点困惑。我有deleteUserTask fn,它在内部调用async deleteUserTask fn,它是基于promise 的,并期望得到一个promise 作为回报,当resolved (.then) 我可以获得被删除的任务的值。
我不确定如何从我的async deleteUserTask fn 返回 doc 的值,然后将在.then promise 中解决,我可以使用它吗?
使用下面的方法返回的值是null,因为我根本没有返回文档值。
function deleteUserTask(req, res, next) {
taskService
.deleteUserTask(req.params.taskId)
.then(task => {
console.log(
"Delete task request took " + (moment.now() - req.requestTime + " ms")
);
// below gives null
console.log(task);
res.json({ task });
})
.catch(err => next(err));
}
taskService.js
async function deleteUserTask(id) {
return await Task.findByIdAndRemove(id, function(err, doc) {
if (err) {
return err;
}
});
}
【问题讨论】:
标签: javascript node.js asynchronous mongoose async-await