我使用Express.js在我的代碼以Node.js的 7.3版。在此我創建了一個User Router
,將請求轉發給我的User Controller
。IntelliJ IDEA的警告 - 「無極返回被忽略」與aysnc /等待
我在User Controller
內部使用async/await進行異步調用。問題是,IntelliJ給我一個警告說,
從login()返回的承諾被忽略。
事情是我什至沒有從login()
方法返回任何東西。
下面的代碼 -
UserRouter.js
router.post('/login', function (req, res, next) {
userController.login(req, res); // I get the warning here
});
UserController.js
exports.login = async function (req, res) {
try {
const verifiedUser = await someFunction(req.body.access_code);
let user = await User.findOrCreateUser(verifiedUser);
res.status(200).send(user);
}
catch (err) {
res.status(400).send({success: false, error: err});
}
};
如果我寫了使用原生的承諾才把我不相同的登錄方法沒有得到這個警告。我是否在這裏理解錯誤或IntelliJ有問題?
編輯 -
感謝@Stephen,據我所知,一個異步函數返回的希望,但是,那豈不是更好,如果確定的IntelliJ,沒有什麼正在從異步函數返回,並且不顯示該警告,因爲當我在login()
函數之後鏈接.then()
時,它會在結果中提供undefined
對象。這意味着如果我們不明確地從異步函數中返回某個東西,那麼undefined會被返回?