概念
PromiseはJavaScriptの非同期処理の一つの解決策であり、非同期操作をより優雅に処理し、コールバック地獄の問題を解決することができます。
Promiseは、非同期操作が最終的に値(成功値または失敗原因)を生成し、その値が生成された後に対応する操作が実行されることを表します。Promiseには、Pending(進行中)、Fulfilled(成功済み)、Rejected(失敗済み)の3つの状態があります。
Promiseオブジェクトは、new Promise()コンストラクタ関数を使用して作成することができます。この関数にはexecutor関数がパラメータとして渡されます。この関数は、Promiseオブジェクトが作成された時に自動的に実行されます。executor関数には、成功時と失敗時のコールバック関数を表すresolveとrejectの2つのパラメータが含まれます。executor関数で非同期操作を実行し、操作の結果に応じてresolveまたはrejectを呼び出します。
例:
var promise = new Promise(function(resolve, reject) {
// 非同期処理
$.get("example.com/data")
.done(function(data) {
resolve(data); // データの取得に成功した場合の処理
})
.fail(function(error) {
reject(error); // データの取得に失敗した場合の処理
});
});
promise.then(function(data) {
console.log("Data received:", data);
}, function(error) {
console.error("Error:", error);
});
この例では、Promise オブジェクトを作成し、コンストラクタで非同期操作を実行しています。
非同期操作が成功した場合、resolve() 関数を呼び出して結果を then() メソッドの成功コールバック関数に渡します。
非同期操作が失敗した場合、reject() 関数を呼び出してエラーを then() メソッドの失敗コールバック関数に渡します。
最後に、then() メソッドを使用して非同期操作の結果を処理します。
コメント