javascript – Intellij Idea警告 – 使用aysnc / await忽略“返回的Promise”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Intellij Idea警告 – 使用aysnc / await忽略“返回的Promise”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1441字,纯文字阅读大概需要3分钟。
内容图文
![javascript – Intellij Idea警告 – 使用aysnc / await忽略“返回的Promise”](/upload/InfoBanner/zyjiaocheng/701/fa2a49798cd949e3a5dfaeafbad9b846.jpg)
我在我的代码中使用Express.js和Node.js v7.3.在这里我创建了一个用户路由器,它将请求转发给我的用户控制器.
我在用户控制器内部使用async / await来进行异步调用.问题是IntelliJ给了我一个警告说
Promise returned from login() is ignored.
问题是我甚至没有从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,我知道async函数会返回一个promise,但如果Intellij发现没有从async函数返回任何内容并且没有显示该警告,那就不会更好了,因为当我链接一个.then()之后login()函数,它在then结果中提供一个未定义的对象.这意味着如果我们不显式地从异步函数返回一些东西,那么返回undefined?
解决方法:
The thing is I’m not even returning anything from the login() method.
声明为“async”的函数按定义返回Promise.
参见例如https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
然而,IDEA警告只是一次检查.您可以在警告上按“alt-enter,right”并更改检查级别以使警告消失.
检查位于“JavaScript – >可能的错误”类别中,并命名为“返回承诺的方法调用结果被忽略”.
内容总结
以上是互联网集市为您收集整理的javascript – Intellij Idea警告 – 使用aysnc / await忽略“返回的Promise”全部内容,希望文章能够帮你解决javascript – Intellij Idea警告 – 使用aysnc / await忽略“返回的Promise”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。