問題タブ [switchmap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - switchMap を使用して以前の http リクエストのサブスクライブを解除し、最新のもののみを取得する
私は現在、最初の検索に 5 秒かかり、2 番目の検索に 2 秒かかるという問題に直面しています。通話は後に終了します。
について読んでみた
スイッチマップ
rxJs で使用しようとしましたが、私が試したところ、以前のリクエストからサブスクライブ解除されず、結果が消去されます。
ここで何か間違っている可能性がありますが、何が問題なのかを正確に指摘することはできません。
Merge には結果の変更の 3 つのソース (ページネーション、並べ替え、または新しい検索基準) があり、sendSearchCriteria の呼び出しは使用されたデータを返します。
sendSearchCriteria はObservable
私が間違っていると思うことはありますか?
ご協力ありがとうございました、
javascript - rxjs: ユーザーがスライダーを動かすと徐々に値をフェッチし、前の完了後に新しいリクエストを送信します
目標: ユーザーがスライダーを動かすと、スライダーの値がサーバーに送信されて値 X が計算され、スライダーの横に表示され、スライダーの値が変化すると徐々に更新されます。
私がしたこと: スロットルされた件名を使用switchMap
して、値をフェッチしました:
それは仕事をしますが、
問題: サーバーがスロットル時間より長く応答する場合、switchMap オペレーターは前の呼び出しをキャンセルします。したがって、スライダーの動きが遅いと一連のリクエストがキャンセルされ、値はユーザーがスライドを停止したときにのみ更新されます。
改善が必要:サーバー呼び出しごとに、応答が来るまで待機し、表示された値 X を更新してから、スライダーの最新の値で新しい呼び出しを開始する必要があります。保留中のリクエストがあったときにユーザーがスライドを停止した場合、最新のスライダー値を持つ最後の 1 つのリクエストを行う必要があります。
(または、それがどのように機能するかについてより良い考えがある場合)