3 回答

TA贡献1817条经验 获得超6个赞
变量可以通过与其声明分开的解构来分配其值,例如:
let error, data;
({error, data} = {error: null, data: 1});
console.log(error, data);
({error, data} = {error: 1, data: null});
console.log(error, data);
来自文档的注释:
注意:( ... )当使用没有声明的对象文字解构赋值时,赋值语句周围的括号是必需的。
{a, b} = {a: 1, b: 2}不是有效的独立语法,因为{a, b}左侧的 被视为块而不是对象文字。
但是,({a, b} = {a: 1, b: 2})是有效的,原样const {a, b} = {a: 1, b: 2}
您的( ... )表达式需要以分号开头,或者它可以用于执行上一行的函数。

TA贡献1840条经验 获得超5个赞
我会做以下事情:
const verifyPayment = async function() {
let response;
response = await Service.fetchOrder()
if(response.error)
return false
response = await Service.verifyPayment()
if(response.error)
return false
return true
}

TA贡献1844条经验 获得超8个赞
解构变量将变量的使用限制为它们主要分配的值,因此,它们预计不会在您的代码中稍后被修改。
将它们视为“使用一次并丢弃”变量。
话又说回来,一个解决方案就在眼前:重命名它们。
(1) 我们如何做到这一点?
const { data: data1, error: error1 } = await Service.fetchOrder();
if (error1) return false;
const { data: data2, error: error2 } = await Service.verifyOrder();
if (error2) return false;
这样,您的代码将保持优雅的格式,并且在调用失败的情况下也有助于调试(知道数据在被命名为 data1 时已损坏/无效比简单地跟踪同名变量的值的所有实例要好得多被改变了)。
添加回答
举报