javascript - 带有已获取实例的 console.log() 在异步函数中停止执行
问题描述
我在 Express 应用程序中使用 Sequelize,但无法弄清楚如何在async
函数中使用 console.log()。每当我想打印从 db 获取的实例时,控制台日志都会停止执行。
这是我尝试过的(每个示例都在单独的尝试中):
updateUser: async (_, { id, ...args }, { User }) => {
const user = await User.findById(3)
// will later do some update to user here
await Promise.resolve(console.log('user: ', user)) // halts the execution
Promise.resolve(console.log('user: ', user)) // halts the execution
await console.log('user: ', user) // halts the execution
console.log('user: ', await user) // halts the execution
console.log('user: ', user) // halts the execution
console.log('only a string') // works!
return user
},
我也以 0 成功尝试了以下方法:
const user = await User.findById(3).then(user => {
console.log('user: ', user)
})
解决方案
console.log
什么都不停止,await
确实
这将停止执行,直到User
找到一些东西:
const user = await User.findById(3).then(user => {
console.log('user: ', user)
})
直到aFunction
有回应:
const user = await aFunction(anArg).then((do) => something);
你想要做的是:
var value; // have this somewhere or something similar
aFunction(anArg).then((res) => { value = res; })
或者在你的情况下:
var savedUser; // have this somewhere or something similar
User.findById(3).then((user) => { savedUser = user; console.log('user: ', user); })
推荐阅读
- python - 无法重建分解图像
- node.js - Json 对象数组:用它们的值替换“键”名称以避免相同的键名和易于检索
- python - 当详细信息来自数据库时,电子邮件发送 django 返回错误
- reactjs - 在 webpack 中使用 TypeScript、styled-components 和 PostCSS
- c++builder - 如何将 kylix3 gui 项目 (c++) 移植到 linux 中任何其他 c++ 支持的 gui ide?
- instagram - 如何为 Instagram Basic Display API App Review 指定测试帐户
- laravel - Laravel 是否支持嵌套 GroupBy?
- javascript - 如何在html a href标签中添加多个javascript变量
- python - python方法中的(self)和(self,)有什么区别?
- hibernate - doInHibernate 是模棱两可的