JS非同期プログラミング小記
1308 ワード
Promiseオブジェクトは非同期プログラミングの解決策であり、従来の解決法であるコールバック関数とイベントよりも合理的で強力である.
Promiseオブジェクトは非同期操作を表しています.Pending(進行中)、Resoloved(完了しました.Fulfilledとも言います.)とRejeced(失敗しました.)の3つの状態があります.
基本的な使い方 Resoliveは、Promiseオブジェクトの状態を「未完成」から「成功」に変化させ、非同期動作が成功したときに呼び出し、非同期動作の結果をパラメータとして伝える . rejectは、Promiseオブジェクトの状態を「未完成」から「失敗」に変化させ、非同期動作に失敗したときに呼び出し、非同期操作で報告されたエラーをパラメータとして伝達する. then法はパラメータとして2つのコールバック関数を受け入れることができる.最初のコールバック関数はPromiseオブジェクトの状態がReolvedになったときに呼び出します.第二のコールバック関数はPromiseオブジェクトの状態がRejectになったときに呼び出します.このうち、第二の関数はオプションであり、必ずしも提供する必要はない.この2つの関数は、パラメータとしてPromiseオブジェクトから流れる値を受けます.
then方法は新しいPromiseの例を返します.したがって、チェーン式の書き方、すなわち、then方法の後に別のthen方法を呼び出すことができる.
Promise.prototype.catch()
Promise.prototype.catch方法は.then(null,rejection)の別名で、エラーが発生した場合のコールバック関数を指定します.
Promiseオブジェクトは非同期操作を表しています.Pending(進行中)、Resoloved(完了しました.Fulfilledとも言います.)とRejeced(失敗しました.)の3つの状態があります.
基本的な使い方
var promise = new Promise(function(resolve, reject) {
// ... some code
if (/* */){
resolve(value);
} else {
reject(error);
}
}).then(function(value) {
// success
}, function(error) {
// failure
});;
Promiseコンストラクタは、それぞれresolve
およびreject
である関数をパラメータとして受け入れる.then方法は新しいPromiseの例を返します.したがって、チェーン式の書き方、すなわち、then方法の後に別のthen方法を呼び出すことができる.
Promise.prototype.catch()
Promise.prototype.catch方法は.then(null,rejection)の別名で、エラーが発生した場合のコールバック関数を指定します.
getJSON("/posts.json").then(function(posts) {
// ...
}).catch(function(error) {
// getJSON
console.log(' !', error);
});