3 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個贊
變量可以通過與其聲明分開的解構(gòu)來分配其值,例如:
let error, data;
({error, data} = {error: null, data: 1});
console.log(error, data);
({error, data} = {error: 1, data: null});
console.log(error, data);
來自文檔的注釋:
注意:( ... )當(dāng)使用沒有聲明的對象文字解構(gòu)賦值時,賦值語句周圍的括號是必需的。
{a, b} = {a: 1, b: 2}不是有效的獨(dú)立語法,因?yàn)閧a, b}左側(cè)的 被視為塊而不是對象文字。
但是,({a, b} = {a: 1, b: 2})是有效的,原樣const {a, b} = {a: 1, b: 2}
您的( ... )表達(dá)式需要以分號開頭,或者它可以用于執(zhí)行上一行的函數(shù)。

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超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貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個贊
解構(gòu)變量將變量的使用限制為它們主要分配的值,因此,它們預(yù)計(jì)不會在您的代碼中稍后被修改。
將它們視為“使用一次并丟棄”變量。
話又說回來,一個解決方案就在眼前:重命名它們。
(1) 我們?nèi)绾巫龅竭@一點(diǎn)?
const { data: data1, error: error1 } = await Service.fetchOrder();
if (error1) return false;
const { data: data2, error: error2 } = await Service.verifyOrder();
if (error2) return false;
這樣,您的代碼將保持優(yōu)雅的格式,并且在調(diào)用失敗的情況下也有助于調(diào)試(知道數(shù)據(jù)在被命名為 data1 時已損壞/無效比簡單地跟蹤同名變量的值的所有實(shí)例要好得多被改變了)。
添加回答
舉報(bào)