[解決済み】PromiseとObservablesの違いは何ですか?
質問
とはどのような違いがあるのでしょうか?
Promise
と
Observable
をAngularで使うか?
両方のケースを理解するために、それぞれについて例を挙げていただけると助かります。それぞれのケースはどのようなシナリオで使用できるのでしょうか?
解決方法は?
約束
A
Promise
を処理します。
単一イベント
非同期オペレーションが完了または失敗したとき。
注
Promise
キャンセルに対応したライブラリがありますが、ES6 の
Promise
は今のところありません。
オブザーバブル
An
Observable
は、まるで
Stream
(多くの言語で)0個以上のイベントを渡すことができ、各イベントに対してコールバックが呼び出されます。
よくあること
Observable
よりも優先されます。
Promise
の機能を提供するからです。
Promise
などがあります。とは
Observable
は、0個、1個、または複数のイベントを処理したいのかどうかは問題ではありません。それぞれのケースで同じAPIを利用することができる。
Observable
にも利点があります。
Promise
であること。
キャンセル可能
. サーバーへの HTTP リクエストやその他の高価な非同期操作の結果が不要になった場合は
Subscription
の
Observable
は購読を取り消すことができます。
Promise
は、通知やそれが提供する結果が不要になった場合でも、最終的に成功または失敗のコールバックを呼び出します。
一方
Promise
はすぐに開始されますが
Observable
は、サブスクライブした場合にのみ開始されます。これがObservableがlazyと呼ばれる所以です。
Observableは以下を提供します。
演算子
のように
map
,
forEach
,
reduce
配列のようなもの
のような強力な演算子もあります。
retry()
または
replay()
などは、非常に便利です。
rxjsに同梱されている演算子のリスト
遅延実行は、購読によってobservableが実行される前に演算子のチェーンを構築することができ、より宣言的な種類のプログラミングを行うことができます。
関連
-
[解決済み】angular 4アプリにReactiveFormsModuleを追加すると、NgControl用のプロバイダがないエラーが発生する。
-
[解決済み】アンギュラーコンポーネントにサービスを注入しようとするとエラー "EXCEPTION: Can't resolve all parameters for component"、なぜ?
-
[解決済み】エラー。どのルートにもマッチしません。URLセグメント: - Angular 2
-
[解決済み] Angular2 Router: Error: Cannot find primary outlet to load 'InboxComponent'.
-
[解決済み] Angular "未定義のプロパティ 'subscribe' を読み取ることができません".
-
[解決済み] ERROR エラーです。StaticInjectorError(AppModule)[UserformService -> HttpClient]です。
-
[解決済み] Angular2 - エラー。セレクタ "app-root" はどの要素にもマッチしませんでした。
-
[解決済み] ブレークポイントの解除 - VS Code | Chrome | Angular
-
[解決済み] Angular 2の「コンポーネント」は既知の要素ではありません。
-
[解決済み] AngularでKendo Tabstripのタブを閉じるボタンを実装する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】serveコマンドを使用するには、angular-cliプロジェクト内にいる必要があります。
-
[解決済み】angularモジュールでModule has no exported memberエラー
-
[解決済み] <selector>' が Angular コンポーネントの場合、それがこのモジュールの一部であることを確認する。
-
[解決済み] ZoneAwarePromiseとは
-
[解決済み] AngularのngClassとトグルクラスのクリックイベント
-
[解決済み] switchの使用時に「ステートメントはif文でフィルタリングされなければならない」というtslintのクレームが発生する。
-
[解決済み] Error.を修正する方法 No value accessor for form control with name' in Angular Unit Test?
-
[解決済み] このメソッドをリファクタリングして、認知的複雑度を21から許容される15に下げます。リファクタリングして複雑さを軽減する方法
-
[解決済み] Angular 2の「コンポーネント」は既知の要素ではありません。
-
[解決済み] ローカルホストが私のアンギュラーアプリに対して無効な応答を送信しました。