1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
就結(jié)果而言,您的兩個(gè)版本之間根本沒有區(qū)別。第一個(gè)只是創(chuàng)建一個(gè)中間局部變量,它不會(huì)影響結(jié)果或并行性或您朋友斷言的任何東西。
你的第二個(gè)更簡潔,同樣清晰,是我在你兩個(gè)之間的偏好。
另一種選擇是使用async/await這對(duì)異步操作序列特別有用:
async function run() {
try {
let data = await getNewDataPromise(2);
data = await getNewDataPromise(data);
data = await getNewDataPromise(data);
data = await getNewDataPromise(data);
console.log(data);
} catch(e) {
console.log(e);
}
}
或者,如果你真的只是一遍又一遍地調(diào)用同一個(gè)函數(shù),你也可以使用一個(gè)循環(huán),它會(huì)減少一些重復(fù)(更 DRY):
async function run() {
try {
let data = 2;
for (let i = 0; i < 4; i++) {
data = await getNewDataPromise(data);
}
console.log(data);
} catch(e) {
console.log(e);
}
}
添加回答
舉報(bào)