0
我有這樣的情況下,我想使用相同的變量名多次使用對象desctructuring:相同的變量名的多次聲明與對象解構
let {body, response} = await requestp('get', `${cdtAPIUrl}/whitelist`, headers);
let parsedBody = await siamese.parse(body);
assert(parsedBody.success, 'response body should have a success property.');
assert(parsedBody.success.length === usernames.length, 'wrong number of items in response body array.');
let {body, response} = await requestp('get', `${cdtAPIUrl}/caches/whitelist`, headers);
let parsedBody = await siamese.parse(body);
,但是當我運行節點的腳本,節點會抱怨運行時之前:
SyntaxError: Identifier 'body' has already been declared
出現妨礙我獲得一個簡單的解決兩個問題:
我不能解構對象做到這一點:
let {a,b} = c;
{a,b} = c; // not allowed
我不能重命名
body
或response
,因爲這是由調用返回。
我該怎麼辦?
也許做的最好的事情是一樣的東西:
let {body,response} = ...
let {body:body1, response:resp1} = ...
該錯誤是由於再次使用'let'來聲明同名的變量導致的。如果你想重用body,可以使用'var'或者放下'let'並且第二次不使用。 – Chris
@chris我認爲這是由OP瞭解是什麼導致錯誤,所以我沒有再提到它 – Bergi
我認爲塊範圍可能是最乾淨的方式來做到這一點,或使用var而不是let。 –