kyl*_*yle 7 javascript ecmascript-6
在javascript中,是否仍可以在处理异常的同时执行对象销毁?例如,这是我理想地希望能够执行的语法无效的内容
let body;
let err;
try {
{ body } = await networkRequest(...); // invalid syntax
} catch (e) {
err = e;
}
Run Code Online (Sandbox Code Playgroud)
从我可以看出的选择是:
不要使用对象分解
不要处理异常
将被破坏的范围作用于try块
是否可以实现对象分解并处理异常?
dav*_*ave 10
您会收到一个解析错误,因为如果没有声明,对象分解的分配看起来像是左侧的一个块,而ES2015规范说必须将其解析为一个块。
您可以通过用括号括起来来解决此问题,以便引擎知道它是一个表达式:
let body;
let err;
try {
({ body } = { body: 'test' })
} catch (e) {
err = e;
}
console.log(body);Run Code Online (Sandbox Code Playgroud)
使用不带声明的对象文字解构赋值时,赋值语句周围的圆括号(...)是必需的语法。
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |