Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Promise::Promise.race静的メソッドの使い方

Promise.race()静的メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Promise.race()メソッドは、複数のPromiseオブジェクトの中から最初に結果が決まったPromiseの結果を返す新しいPromiseを生成するメソッドです。これはJavaScriptのPromiseオブジェクトが提供する静的メソッドの一つで、複数の非同期処理を並行して実行し、その中で最も早く完了した処理の結果だけを受け取りたい場合に利用されます。

このメソッドは、Promiseオブジェクトを含むイテラブル(例えば配列など)を引数として受け取ります。そして、引数として渡されたPromiseの中から、いずれか一つでも「解決(fulfilled)」または「拒否(rejected)」された場合、Promise.race()が返す新しいPromiseは、その最初に結果が決まったPromiseの結果(解決された値、または拒否された理由)で直ちに解決または拒否されます。その後、他のPromiseがどのような結果になっても、Promise.race()が返すPromiseには影響しません。

例えば、複数のネットワークリクエストを同時に行い、最も早く完了したリクエストの結果だけを利用したい場合などに非常に有効です。複数の非同期処理を競争させ、最も速いものだけを採用するといったシナリオで役立ちます。このように、Promise.race()は、複数の非同期処理の競合状態を効率的に管理し、システムの応答性を高めるために利用できる強力なツールです。

公式リファレンス: Promise.race()

構文(syntax)

1Promise.race([promise1, promise2, /* ... */]);

引数(parameters)

iterable

  • iterable: Promiseオブジェクト、またはPromiseオブジェクトに解決される値のイテラブル(配列など)。この中で最初に解決または拒否されたPromiseの結果でPromise.race()は解決または拒否されます。

戻り値(return)

Promise

Promise.race()は、引数に与えられたイテラブル(配列など)の中に含まれるPromiseのうち、最初にsettled(fulfilledまたはrejected)になったPromiseと同じ状態(fulfilledまたはrejected)でsettledする新しいPromiseを返します。

関連コンテンツ