を待って、私はのNode.js V7.3に自分のコードにExpress.jsを使用していて、「約束が返さは無視されます」。これで私はを作成し、要求を私のUser Controller
に転送します。のIntelliJアイデア警告 - 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が間違っていますか?
EDIT - のIntelliJは何も非同期関数から返されていないされていることを識別し、表示されない場合@Stephenに
おかげで、私は、非同期関数が約束を返しますが、それが良いではないであろうことを理解しますこの警告は、login()
関数の後に.then()
をチェーンすると、then結果にundefined
オブジェクトを提供するためです。つまり、非同期関数から何かを明示的に返していない場合、undefinedが返されます。