我想尝试将此函数转换为基于Promise
的函数,以便解决所有这些嵌套回调和来自ESLint consistent-return的return
警告。将嵌套的回调转换为Promise
以前,我在这里要求一些帮助以克服ESLint错误,因为它们不一致或遵循JS的最佳实践。
我首先想到的是简单地做return new Promise((resolve, reject) => {...})
的remove
函数内部,但是这也只是promisify整个事情,而不是仅仅有什么功能里面,所以我觉得这不是要做到这一点的最好办法。
任何帮助表示赞赏!
function remove(req, res) {
User.findOne({ username: req.params.username }, (findErr, existingUser) => {
if (findErr) return res.status(500).send(errorHandler.getErrorMessage(findErr));
if (!existingUser) return res.status(404).send({ message: 'User not found' });
existingUser.remove((removeErr) => {
if (removeErr) return res.status(500).send(errorHandler.getErrorMessage(removeErr));
return res.json({ message: `${existingUser.username} successfully deleted` });
});
});
}
你在使用thsoe'findOne'和'remove'调用库?它以某种方式支持承诺(可能通过简单地省略回调)? – Bergi
只需使用简单的猫鼬进行数据库查询 – germainelol