「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
コールバックのネストが深くなりコードが読み難くなるということがある。
組み込みクラス。
以下のようにPromiseオブジェクトを利用して非同期処理を実装する。
従来型では、非同期処理を順次実行する場合、
非同期処理に非同期処理(コールバック)を渡すため、
以下の様に非同期処理がネストすることになる。
fetchSomething1(function() { fetchSomething2(function() { fetchSomething3(function() { fetchSomething4(doSomethingFinally); }); }); });
メソッド・チェーンで非同期処理を順次実行できる。
var promise1 = fetchSomething1(); var promise2 = promise1.then(fetchSomething2); var promise3 = promise2.then(fetchSomething3); var promise4 = promise2.then(fetchSomething4); promise4.then(doSomethingFinally);
fetchSomething1() .then(fetchSomething2) .then(fetchSomething3) .then(fetchSomething4) .then(doSomethingFinally);
※ 各非同期処理は、Promiseオブジェクトを返すように実装されている。
以下で、並列処理を実装できる。
チェーンの最後にだけ、
「失敗のPromiseオブジェクトを返す非同期処理関数」
を設定すれば、ココでエラーをまとめてキャッチできる。