gpt4 book ai didi

javascript - Return 似乎没有等待 javascript

转载 作者:行者123 更新时间:2023-11-29 20:54:23 24 4
gpt4 key购买 nike

const fs = require('fs')
const util = require('util')

const readFile = util.promisify(fs.readFile)

const buildMap = async () => {
let map = await readFile(process.argv[2], { encoding: 'utf-8' })
console.log(map) // Returns the right result
return map // Returns `Promise { <pending> }`
}

const game = buildMap()
console.log(game)

为什么在上面的代码中,特别是

let map = await readFile(process.argv[2], { encoding: 'utf-8' })
console.log(map) // Returns the right result
return map // Returns Promise { <pending> }

返回返回 Promise pending,即使它上面的行有正确的结果?我该如何改变它才能做到这一点?

在此先感谢并为问题写得不好感到抱歉......(编写良好的 SO 问题不是我的强项之一)

最佳答案

async 函数总是返回 promise (即使它们的操作是完全同步的)。您必须根据调用结果调用 .then

buildMap().then((game) => {
// do stuff with game
console.log(game);
});

请注意,您不能只使用类似的东西来使用它

const game = await buildMap();

因为您不能在顶层await - 您只能在异步函数内await

关于javascript - Return 似乎没有等待 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50084244/

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