resolve, rejectってなに
JavaScriptや他のプログラミング言語で非同期処理やPromiseを実装する際に使用される用語
Promiseとは
- 非同期処理をよりシンプルかつ効率的に扱うための機能
例)APIリクエストやファイルの読み込みなど
非同期処理によって返される結果を、後続の処理で簡単に利用できるようにするためにプロミスが使われる
Promiseを使った例
function fetchData() {
return new Promise((resolve, reject) => {
// 非同期処理を行う(APIリクエスト、ファイルの読み込みなど)
// 成功した場合は resolve を呼び出し、失敗した場合は reject を呼び出す
});
}
// Promiseを使用して非同期処理を実行し、成功・失敗時のコールバックを設定する
fetchData()
.then((data) => {
// 成功時の処理
})
.catch((error) => {
// 失敗時の処理
});
- 非同期処理の結果を表現
- 成功時と失敗時の処理を簡潔に記述できる
【resolveとrejectはコールバック関数】
- resolve : 非同期処理が成功した際に呼び出されるコールバック関数
- reject : 非同期処理が失敗した際に呼び出されるコールバック関数
resolve
-
プロミスを成功(Fulfilled)した状態にするための関数
非同期処理が成功したとき、その結果をresolveに渡すことでプロミスが成功状態となる
→後続の.then()メソッドで結果を処理できるようになる
reject
-
プロミスを失敗(Rejected)した状態にするための関数
非同期処理が失敗した場合に、そのエラー情報をrejectに渡すことでプロミスが失敗状態となる
→後続の.catch()メソッドでエラーを処理できるようになる
deferredとは
- 一般的には非同期処理を管理するための手法のこと
特定の状態(成功・失敗・保留)を表現して、その状態に応じコールバックを実行する仕組み
deferredは古いバージョンのjQueryでよく使われていたが、ES6以降ではネイティブなPromiseがサポートされている
よってPromiseを使用することが推奨されている
- deferredはjQueryのDeferredオブジェクトのことを指す場合がある
jQuery.Deferredとは
jQueryの非同期処理を管理するための強力なユーティリティ
Promiseと同様に非同期処理の結果を表現し、成功・失敗時のコールバックを設定できる