Javascript プロミス
2013 年 4 月 22 日
Javascript では、非同期の操作の保留中の結果を表すオブジェクトがプロミスです。非同期操作が完了した後で、コールバックを供給することで、今後のアクティビティをスケジュールできます。
aPromise = someAsyncOperation(); aPromise.done(function() { // runs if all went well }); aPromise.fail(function() { // runs if something went wrong }); aPromise.always(function() { // runs either way });
非同期タスクでアクティビティをスケジュールする明確なインターフェイスを提供するだけでなく、構成することもできます。
composedPromise = $.when(anAsyncFunction(), anotherAsyncFunction());
この形式(jQuery プロミスを使用)では、構成されたプロミスは、渡されたすべてのプロミスが成功した場合にその完了ハンドラーを実行し、それらのいずれかが失敗した場合は失敗ハンドラーを実行します。
javascript にはさまざまな形式のプロミスがあります。わずかに異なる API と語彙があるのは厄介です。おそらく最もよく使用されているのは jQuery の Deferred Object です。
これらの概念は、非同期だけでなく並行処理を念頭に、javascript だけでなく多くの言語で説明されています。futures と deferreds。
詳細については、Trevor Burnham の Async JavaScript を入手することをお勧めします。ウェブ記事が必要な場合は、バーナムに 短いが便利な記事 があり、それらを要約しています。