考虑到在 Javascript中使用 try/catch 块内的对象解构时,您正在为变量赋值。我们稍后将在函数中需要这些变量。
目前,我将整个作业用括号括起来:
async function myFunction() {
let query, variables;
try {
({ query, variables } = await giveMeVariables()) // Here...
} catch (err) {
console.log("An error ocurred");
}
console.log("QUERY", query);
console.log("VARIABLES", variables);
}
function giveMeVariables () {
return new Promise((resolve, reject) => {
resolve({ query: "hi", variables: "there" });
});
}
查看MDN:“使用没有声明的对象文字解构赋值时,赋值语句周围的括号 ( ... ) 是必需的。” 这是处理带有解构的 try/catch 块的首选方法,还是有更好的方法?
另外,你会如何在 Typescript 中输入这个?您是否必须将初始变量键入为未定义/您的预期结果?