首页 > 解决方案 > javascript 和 node.js 中的异步和等待

问题描述

我是初学者,正在学习 MERN 教程,但无法理解以下代码的控制流。async/await 在此函数中做了什么,用户何时设置为等待的值(User.findById...)?

router.get('/', auth, async (req, res) => {
    const user = await User.findById(req.user.id).select('-password');
    res.json(user);
}

标签: javascriptnode.jsmern

解决方案


异步函数是通过事件循环异步操作的函数,使用隐式 Promise 返回其结果。await 运算符用于等待 Promise。它只能在异步函数中使用。

所以在这个异步/等待的例子中,用户“等待”直到 User.findById() 函数返回结果,因为它会在未来的某个地方,这是在 await 关键字的帮助下实现的。

我建议观看有关事件循环的视频,以更好地了解异步 JavaScript 的工作原理。

另外我强烈建议你阅读 MDN 文档 async / await

并阅读Promises

如果您还有其他问题,我很乐意为您提供帮助。


推荐阅读