1. ホーム
  2. アンギュラー

[解決済み】PromiseとObservablesの違いは何ですか?

2022-03-18 15:09:20

質問

とはどのような違いがあるのでしょうか? PromiseObservable をAngularで使うか?

両方のケースを理解するために、それぞれについて例を挙げていただけると助かります。それぞれのケースはどのようなシナリオで使用できるのでしょうか?

解決方法は?

約束

A Promise を処理します。 単一イベント 非同期オペレーションが完了または失敗したとき。

Promise キャンセルに対応したライブラリがありますが、ES6 の Promise は今のところありません。

オブザーバブル

An Observable は、まるで Stream (多くの言語で)0個以上のイベントを渡すことができ、各イベントに対してコールバックが呼び出されます。

よくあること Observable よりも優先されます。 Promise の機能を提供するからです。 Promise などがあります。とは Observable は、0個、1個、または複数のイベントを処理したいのかどうかは問題ではありません。それぞれのケースで同じAPIを利用することができる。

Observable にも利点があります。 Promise であること。 キャンセル可能 . サーバーへの HTTP リクエストやその他の高価な非同期操作の結果が不要になった場合は SubscriptionObservable は購読を取り消すことができます。 Promise は、通知やそれが提供する結果が不要になった場合でも、最終的に成功または失敗のコールバックを呼び出します。

一方 Promise はすぐに開始されますが Observable は、サブスクライブした場合にのみ開始されます。これがObservableがlazyと呼ばれる所以です。

Observableは以下を提供します。 演算子 のように map , forEach , reduce 配列のようなもの

のような強力な演算子もあります。 retry() または replay() などは、非常に便利です。 rxjsに同梱されている演算子のリスト

遅延実行は、購読によってobservableが実行される前に演算子のチェーンを構築することができ、より宣言的な種類のプログラミングを行うことができます。