[解決済み] RxJSのpipeとは何ですか?
2022-03-06 22:36:13
質問
基本的な考え方はできているつもりですが、不明な点があります。
というわけで、一般的にはこのように
Observable
:
observable.subscribe(x => {
})
データをフィルタリングしたい場合は、これを使うことができます。
import { first, last, map, reduce, find, skipWhile } from 'rxjs/operators';
observable.pipe(
map(x => {return x}),
first()
).subscribe(x => {
})
こんなこともできるんです。
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/first';
observable.map(x => {return x}).first().subscribe(x => {
})
そこで質問なのですが。
- 何が違うのですか?
-
違いがないのであれば、なぜ、この機能
pipe
は存在するのでしょうか? - なぜこれらの関数は異なるインポートを必要とするのですか?
解決方法は?
pipeable"(旧"lettable")演算子は 現在推奨されている方法 は、RxJS 5.5以降、演算子を使用するようになりました。
を読むことを強くお勧めします。 パイプ式演算子に関する公式文書
主な違いは、カスタム演算子を作るのが簡単なことと、いくつかのグローバルな
Observable
オブジェクトを使用すると、2 つの異なる当事者が同じ名前の演算子を作成しようとすると、衝突する可能性があります。
別々の
import
各オペレータに対応する
'rxjs/add/operator/first'
は、アプリのバンドルを小さくするための方法でした。RxJS ライブラリ全体ではなく、必要な演算子だけをインポートすることで、バンドル全体のサイズを大幅に小さくすることができます。しかし、コンパイラは、あなたが
'rxjs/add/operator/first'
本当に必要なのか、リファクタリングで削除し忘れただけなのか。これがパイプライン演算子の利点の1つで、未使用のインポートは自動的に無視されます。
関連
-
[解決済み】Angularのエラーです。NgModuleアノテーションを追加してください。
-
[解決済み】angularでpreflightのレスポンスがHTTP okステータスにならない。
-
[解決済み] Angular2 Router: Error: Cannot find primary outlet to load 'InboxComponent'.
-
[解決済み] 型 '{}' は型 '{ title: string; text: string; }' に代入できません。
-
[解決済み] 安全でない値」の例外を発生させずに <iframe src="..."> を設定するにはどうしたらよいですか?
-
[解決済み] コンポーネントは2つのモジュールの宣言に含まれる
-
[解決済み] このメソッドをリファクタリングして、認知的複雑度を21から許容される15に下げます。リファクタリングして複雑さを軽減する方法
-
[解決済み] Angularアプリのシンタックスエラー。予期しないトークン <
-
[解決済み] Angular/RxJS `Subscription` からいつ退会すればいいのか?
-
[解決済み】PromiseとObservablesの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] node_modules が空になったので、`npm install`を実行する必要があるかもしれない。
-
[解決済み】angularJS2プロジェクトでsystemjs.config.jsファイルをどこに置くか/見つけるか?
-
[解決済み】ngサーブが機能しない
-
[解決済み] テンプレートパースエラーです。'mat-icon' は既知の要素ではありません。
-
[解決済み] Angular 4: コンポーネントファクトリが見つかりません。@NgModule.entryComponents に追加しましたか?
-
[解決済み] 未定義のプロパティ 'filter' を読み取ることができません。
-
[解決済み] エラーです。複数のモジュールがマッチしました。skip-import オプションを使用して、最も近いモジュールへのコンポーネントのインポートをスキップしてください。
-
[解決済み] AngularのmatSortがソートされない
-
[解決済み] コンポーネントは2つのモジュールの宣言に含まれる
-
[解決済み] Angular 2の「コンポーネント」は既知の要素ではありません。