高度な RxJS パターン
高階 observable、マルチキャスト、share 演算子、エラー回復、再試行戦略、バックプレッシャー、カスタム演算子
22 面接問題·
Senior
1並行 HTTP リクエストを処理する際の switchMap と mergeMap の主な違いは何ですか?
1
並行 HTTP リクエストを処理する際の switchMap と mergeMap の主な違いは何ですか?
回答
switchMap は新しい値が届くと前のリクエストをキャンセルし、mergeMap はすべてのアクティブなサブスクリプションを同時に維持します。検索バーでは、switchMap が新しい入力時に進行中のリクエストを自動的にキャンセルし、古い結果を防ぎます。mergeMap は並列ファイルアップロードのように、すべて完了する必要がある独立したアクションに適しています。
2ユーザーアクションのキューを処理する際、mergeMap ではなく concatMap を使うべきはいつですか?
2
ユーザーアクションのキューを処理する際、mergeMap ではなく concatMap を使うべきはいつですか?
回答
concatMap は各内部 observable の完了を待ってから次を処理することで実行順序を保証し、mergeMap は順序保証なしですべてのアクションを並列処理します。順次的な銀行取引やチャットメッセージ送信のように厳密な順序が必要な重要操作には concatMap を使用します。mergeMap は並列実行可能な独立したアクションに適しています。
3高階 observable とは何で、なぜフラット化演算子が必要なのですか?
3
高階 observable とは何で、なぜフラット化演算子が必要なのですか?
回答
高階 observable は他の observable を発行する observable です。例えば、クリックごとに HTTP リクエスト observable を発行するクリック observable などです。フラット化演算子(switchMap、mergeMap、concatMap)がないと、直接使用できないネストされた Observable<Observable<T>> 構造になります。フラット化演算子は内部 observable に自動的にサブスクライブし、その値をメインストリームに発行します。
4
ユーザーが新しい入力をしたときに進行中の検索を自動的にキャンセルするには、どの演算子を使うべきですか?
5
重要なリクエストを処理する際、exhaustMap は switchMap とどのように異なりますか?
+19 面接問題
その他のAngular面接トピック
TypeScriptの基礎
Junior
25問TypeScript上級
Junior
20問Angularの基礎
Junior
20問コンポーネントとライフサイクル
Junior
20問Services & Dependency Injection
Junior
20問Angularモジュールの構成
Mid-Level
22問Angular CLI
Junior
18問ディレクティブとPipe
Mid-Level
22問ルーティングとナビゲーション
Mid-Level
24問リアクティブフォーム
Mid-Level
26問テンプレート駆動フォーム
Mid-Level
16問RxJS の基礎
Mid-Level
22問RxJS オペレーター
Mid-Level
24問HttpClientとAPI呼び出し
Mid-Level
22問基本的な状態管理
Mid-Level
20問Change Detection
Mid-Level
20問Angular Signals
Mid-Level
20問Standalone Components
Mid-Level
18問Angularのユニットテスト
Mid-Level
22問エンドツーエンドテスト
Mid-Level
18問ビルドと最適化
Mid-Level
20問NgRxの基礎
Senior
24問NgRx応用
Senior
24問Angularアーキテクチャ
Senior
22問パフォーマンス最適化
Senior
22問セキュリティとベストプラクティス
Senior
20問Angular Universal と SSR
Senior
20問Angular マイクロフロントエンド
Senior
20問