Angular

高度な RxJS パターン

高階 observable、マルチキャスト、share 演算子、エラー回復、再試行戦略、バックプレッシャー、カスタム演算子

22 面接問題·
Senior
1

並行 HTTP リクエストを処理する際の switchMap と mergeMap の主な違いは何ですか?

回答

switchMap は新しい値が届くと前のリクエストをキャンセルし、mergeMap はすべてのアクティブなサブスクリプションを同時に維持します。検索バーでは、switchMap が新しい入力時に進行中のリクエストを自動的にキャンセルし、古い結果を防ぎます。mergeMap は並列ファイルアップロードのように、すべて完了する必要がある独立したアクションに適しています。

2

ユーザーアクションのキューを処理する際、mergeMap ではなく concatMap を使うべきはいつですか?

回答

concatMap は各内部 observable の完了を待ってから次を処理することで実行順序を保証し、mergeMap は順序保証なしですべてのアクションを並列処理します。順次的な銀行取引やチャットメッセージ送信のように厳密な順序が必要な重要操作には concatMap を使用します。mergeMap は並列実行可能な独立したアクションに適しています。

3

高階 observable とは何で、なぜフラット化演算子が必要なのですか?

回答

高階 observable は他の observable を発行する observable です。例えば、クリックごとに HTTP リクエスト observable を発行するクリック observable などです。フラット化演算子(switchMap、mergeMap、concatMap)がないと、直接使用できないネストされた Observable<Observable<T>> 構造になります。フラット化演算子は内部 observable に自動的にサブスクライブし、その値をメインストリームに発行します。

4

ユーザーが新しい入力をしたときに進行中の検索を自動的にキャンセルするには、どの演算子を使うべきですか?

5

重要なリクエストを処理する際、exhaustMap は switchMap とどのように異なりますか?

+19 面接問題

次の面接に向けてAngularをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める