{category}

JavaScript - Promise

Promise.race()

プロミス レース(非同期処理

意味 最速処理の結果取得


Promise.race()とは?

Promise.race()は、複数のPromiseの中で最初に完了したものの結果またはエラーを返すメソッドです。

Promise.race()の具体的な使い方

複数の非同期処理のうち最初に完了したものを取得する例

<button onclick='usePromiseRace()'>Promise.raceの使用例</button>
<script>
function usePromiseRace() {
  const promise1 = new Promise((resolve) => setTimeout(() => resolve('1秒後に完了'), 1000));
  const promise2 = new Promise((resolve) => setTimeout(() => resolve('2秒後に完了'), 2000));
  const promise3 = new Promise((resolve, reject) => setTimeout(() => reject('3秒後にエラー'), 3000));

  Promise.race([promise1, promise2, promise3])
    .then((result) => {
      alert('最初に完了した処理: ' + result);
    })
    .catch((error) => {
      alert('エラーが発生しました: ' + error);
    });
}
</script>

3つの非同期処理(1秒後、2秒後、3秒後にそれぞれ完了)を競争させ、最初に完了したものの結果をアラートで表示します。この例では、1秒後の処理が最も早く完了するため、その結果が表示されます。

Promise.race()に関するよくある質問

Q. Promise.raceの使用目的は?
A. Promise.raceは複数の非同期処理のうち、最初に完了したものの結果を取得するために使用します。競争(race)のように、最初にゴールした処理の結果だけを利用したい場合に便利です。
Q. Promise.allとの違いは?
A. Promise.allは全ての非同期処理が完了するまで待ちますが、Promise.raceは最初に完了した処理の結果だけを返します。Promise.allは全ての結果が必要な場合に、Promise.raceは最速の結果のみが必要な場合に使用します。
Q. エラー処理はどうなりますか?
A. Promise.raceでは、最初にrejectされたPromiseのエラーがcatchブロックで捕捉されます。つまり、最初に完了した処理がエラーだった場合、そのエラーが結果として返されます。

Promise.race()が学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、JavaScriptのPromise.race()やコールバック、非同期、clearInterval()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


JavaScriptを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!JavaScriptはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

コールバック

後で実行する関数

種類: コールバックと非同期

非同期

順不同の実行

種類: コールバックと非同期

clearInterval()

定期実行を中止

種類: その他の非同期機能

array.shift()

先頭要素を取り出す

種類: Array

mouseenter

マウスが要素の上に乗ったときに発生する。

種類: ユーザーインタラクションイベント