Promise.race
は2つ以上のPromise
のどちらか早い方を戻り値として取得する関数です。
下の例では、100ミリ秒後に完了するPromiseと、200ミリ秒後に完了するPromiseのどちらか早く完了するほうを取得するものです。この例では、前者のほうが早いので、Promise.race
で得られる値はPromise<"100ミリ後に完了した処理">
のほうになります。
async function test1() {
// 100ミリ後に完了する処理
const one = new Promise(resolve =>
setTimeout(() => resolve('100ミリ後に完了した処理'), 100),
)
// 200ミリ秒後に完了する処理
const two = new Promise(resolve =>
setTimeout(() => resolve('200ミリ後に完了した処理'), 200),
)
const result = await Promise.race([one, two])
console.log(result)
//=> "100ミリ後に完了した処理"
}
test1()
- 公式ドキュメント→Promise.race() - JavaScript | MDN