【发布时间】:2020-02-09 17:21:37
【问题描述】:
编辑:我发现你甚至不需要这个功能。这也适用于我:
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'
【问题讨论】:
-
您确实没有发布足够的代码来给出答案;无法重新分配普通的
const符号。 -
随着您的更新,您的问题似乎是关于 chrome 开发者控制台和顶级等待的怪癖。普通代码不会那样做。
-
看起来几乎像 REPL 的错误以及顶级等待。注意:在 REPL 中拆分代码,我可以在 chrome 和 FF 上重现它,但不能在节点上重现(顶级 await 可能会引发错误,可能是因为我的节点版本是 12.10.0 而不是最新的)
-
const x = await 'hello' x = 'something else'这让我更崩溃了...... :(
标签: javascript async-await google-chrome-devtools constants