Promiseは以下の3つの状態を持ちます:
- ペンディング(Pending): 初期状態で、非同期操作が実行中であることを示します。
- 履行(Fulfilled): 非同期操作が成功したことを示します。
- 却下(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を活用することができます。