JavaScript - PromiseとsetTimeoutの比較と使い方


  1. Promise: PromiseはES6から導入された非同期処理を扱うためのビルトインオブジェクトです。以下のような形式で利用します。
const promise = new Promise((resolve, reject) => {
  // 非同期な処理を実行する
  // 処理が成功した場合はresolveを呼び出す
  // 処理が失敗した場合はrejectを呼び出す
});
promise.then((result) => {
  // 処理が成功した場合のコールバック
}).catch((error) => {
  // 処理が失敗した場合のコールバック
});

Promiseは非同期処理の結果を返すため、thenメソッドで成功時のコールバック関数を指定し、catchメソッドで失敗時のコールバック関数を指定します。

  1. setTimeout: setTimeoutは指定した時間後にコードを実行するための関数です。以下のように使用します。
setTimeout(() => {
  // 指定した時間後に実行したいコード
}, 遅延時間);

setTimeoutは非同期的にコードを実行するため、指定した時間が経過した後にコールバック関数が呼び出されます。

PromiseとsetTimeoutの違いは、主に以下の点です:

  • Promiseは非同期処理の結果を返し、成功時と失敗時のコールバック関数を指定できます。一方、setTimeoutは単純に指定した時間後にコードを実行するだけで、結果を返しません。
  • Promiseはチェーン可能であり、複数の非同期処理を順番に実行することができます。setTimeoutは一度の遅延時間しか指定できず、複数の非同期処理を順番に実行するには再帰的にsetTimeoutを呼び出す必要があります。

以上がPromiseとsetTimeoutの基本的な使い方と違いです。適切な場面でそれぞれを使用することで、効果的な非同期処理を実現することができます。