Я выполняю операцию удаления, используя findByIdAndRemove
метод запроса mongoose, и хочу убедиться, что удаленный документ будет возвращен. Я прогуглил это и обнаружил, что мы передаем обратный вызов findByIdAndRemove
, в котором мы передаем err, doc args
, и если удаление прошло успешно, удаленное значение возвращается в doc, которое мы можем вернуть из вызова fn. Но я несколько запутался в async and await
. У меня есть deleteUserTask
fn, который внутренне вызывает async deleteUserTask
fn, который основан на обещаниях и ожидает взамен обещания, которое, когда resolved (.then)
, я могу получить значение задачи, которая была удалена.
Я не уверен, как вернуть значение doc из моего async deleteUserTask
fn, которое затем будет разрешено в .then
обещании, и я могу его использовать?
При подходе ниже возвращаемое значение равно null
, поскольку я вообще не возвращаю значение doc.
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;
}
});
}