Javascript 解构:赋值表达式的左侧无效

lif*_*u42 2 javascript ecmascript-6

我能做到这一点

[a, b] = await function1(a, b)

但当我这样做时

[a, b] = await function1(a, b) [a, b] = await function2(a, b)

我收到此错误消息

SyntaxError: Invalid left-hand side in assignment expression
[a, b] = await function1(a, b)
         ^
[a, b] = await function2(a, b)
Run Code Online (Sandbox Code Playgroud)

我找到了解决方法,但想知道是否有办法使我的示例起作用。

提前致谢

Nic*_*wer 5

您只需要添加分号即可。它认为第二组[a, b]是同一表达式的一部分,更具体地说,它是一个数组索引。即,它看到了这么多:

[a, b] = await function1(a, b)[a, b] =
Run Code Online (Sandbox Code Playgroud)

...然后想“哇,我不能分配任何东西给await function1(a, b)[a, b]

所以改为:

[a, b] = await function1(a, b); // <-- added semicolon, fixing the issue
[a, b] = await function2(a, b); // <-- added semicolon for consistency
Run Code Online (Sandbox Code Playgroud)