gpt4 book ai didi

javascript - 为什么等待后可以在控制台中重新分配 `const x`?

转载 作者:行者123 更新时间:2023-12-03 09:49:55 27 4
gpt4 key购买 nike

编辑:我发现您甚至不需要此功能。这对我也有效:

const x = await 'hello'
x = 'something else'

请注意,如果没有 await,它将引发错误。

首先定义一个异步函数,

async function a() {
return new Promise(resolve => {
resolve('hello')
})
}

然后将 x分配给 'hello'

const x = await a()

然后重新分配 x

x = 'something else'

如果 x是一个常量变量,为什么要重新分配它?有什么明显的我想念的地方吗?

这是完整的代码(已在Chrome 80.0.3987.87的浏览器控制台中测试):

async function a() {
return new Promise(resolve => {
resolve('hello')
})
}

const x = await a()

x = 'something else'

最佳答案

我无法复制您的描述。这对我来说是一个错误。

async function a() {
return new Promise(resolve => {
resolve('hello')
})
}

(async () => {
try {
const x = await a();
x = 'something else';
console.log("worked", x);
} catch (err) {
console.log("didn't work", err.toString());
}
})()


关于您更新的问题,当您在chrome开发人员控制台中输入代码时,我看到会发生这种情况。此外,您的代码正在异步函数外部使用await。顶层等待尚未成为javascript标准的一部分,尽管它正在以 through the approval process的方式工作。开发工具可以让您做到这一点,但是如果结果不规范,我也不会感到惊讶。

关于javascript - 为什么等待后可以在控制台中重新分配 `const x`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60139250/

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