我想嘗試將此函數轉換爲基於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