JavaScriptのPromiseとは何ですか?基本的な使用方法


Promiseは以下の3つの状態を持ちます:

  1. ペンディング(Pending): 初期状態で、非同期操作が実行中であることを示します。
  2. 履行(Fulfilled): 非同期操作が成功したことを示します。
  3. 却下(Rejected): 非同期操作が失敗したことを示します。

Promiseを作成するには、新しいPromiseオブジェクトを生成し、非同期処理を実行するコールバック関数を渡します。コールバック関数は2つの引数(resolveとreject)を受け取ります。resolveは非同期処理が成功した場合に呼び出され、rejectは非同期処理が失敗した場合に呼び出されます。

以下に、Promiseの基本的な使用方法とコード例を示します:

const myPromise = new Promise((resolve, reject) => {
  // 非同期処理の実行
  setTimeout(() => {
    const randomNum = Math.random();
    if (randomNum < 0.5) {
      resolve(randomNum); // 成功した場合、結果をresolveする
    } else {
      reject(new Error('処理に失敗しました')); // 失敗した場合、エラーオブジェクトをrejectする
    }
  }, 1000);
});
// Promiseの使用例
myPromise
  .then(result => {
    console.log('成功:', result);
  })
  .catch(error => {
    console.log('失敗:', error.message);
  });

上記のコードでは、1秒後にランダムな数値を生成し、その数値が0.5未満の場合は成功としてresolveし、0.5以上の場合は失敗としてrejectします。Promiseのthenメソッドは成功時に呼び出され、catchメソッドは失敗時に呼び出されます。

これはPromiseの基本的な使用方法の一例であり、他にもさまざまな方法でPromiseを活用することができます。