gpt4 book ai didi

javascript - 带有获取实例的 console.log() 在异步函数中停止执行

转载 作者:行者123 更新时间:2023-12-03 22:43:48 26 4
gpt4 key购买 nike

我在 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); })

关于javascript - 带有获取实例的 console.log() 在异步函数中停止执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53144123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com