Angular におけるPromise
との違いは何ですか?Observable
それぞれの例があれば、両方のケースを理解するのに役立ちます。それぞれのケースはどのようなシナリオで使用できますか?
ベストアンサー1
約束
非同期操作が完了または失敗したときに、単一のイベントPromise
を処理します。
注:Promise
キャンセルをサポートするライブラリは存在しますが、ES6 ではPromise
今のところサポートされていません。
観察可能
は(多くの言語の)Observable
に似ておりStream
、各イベントに対してコールバックが呼び出される 0 個以上のイベントを渡すことができます。
多くの場合、 は 以上の機能を備えているため、Observable
よりも好まれます。 では、0 個、1 個、または複数のイベントを処理するかどうかは関係ありません。 いずれの場合も同じ API を利用できます。Promise
Promise
Observable
Observable
には、キャンセルPromise
可能であるという利点もあります。サーバーへの HTTP リクエストの結果やその他の負荷の高い非同期操作が不要になった場合、 の を使用するとサブスクリプションをキャンセルできます。一方、 は、通知やその結果が不要になった場合でも、最終的には成功または失敗のコールバックを呼び出します。Subscription
Observable
Promise
はすぐに起動しますがPromise
、Observable
はサブスクライブした場合にのみ起動します。これが、Observable が遅延と呼ばれる理由です。
Observableは配列に似た、、、などの演算子を提供します。map
forEach
reduce
retry()
、 、 ...などの強力な演算子もあり、replay()
非常に便利です。rxjs に同梱されている演算子のリスト
遅延実行を使用すると、サブスクライブによってオブザーバブルが実行される前に演算子のチェーンを構築して、より宣言的な種類のプログラミングを行うことができます。