[英]Implementation of Promise.race()
根據定義,promise 只解決/拒絕一次,無論您調用resolve
或reject
頻率如何。 因此,您構造的承諾將解析為所傳遞的承諾的第一個承諾所解決的任何問題。
我想你可以舉一個更簡單的例子,為變量分配一些新名稱,這樣會更容易理解。
const race = ([A, B, C]) =>
const outer = new Promise((resolveRace, rejectRace) => {
A.then(resolveRace).catch(rejectRace); // A wins
B.then(resolveRace).catch(rejectRace); // B wins
C.then(resolveRace).catch(rejectRace); // C wins
}
return outer;
});
對於每個“內部”承諾,我們使用“外部”承諾resolveRace
和rejectRace
函數分配成功/錯誤回調。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.