問題タブ [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.

0 投票する
3 に答える
1816 参照

javascript - switchMap を使用して以前の http リクエストのサブスクライブを解除し、最新のもののみを取得する

私は現在、最初の検索に 5 秒かかり、2 番目の検索に 2 秒かかるという問題に直面しています。通話は後に終了します。

について読んでみた

スイッチマップ

rxJs で使用しようとしましたが、私が試したところ、以前のリクエストからサブスクライブ解除されず、結果が消去されます。

ここで何か間違っている可能性がありますが、何が問題なのかを正確に指摘することはできません。

Merge には結果の変更の 3 つのソース (ページネーション、並べ替え、または新しい検索基準) があり、sendSearchCriteria の呼び出しは使用されたデータを返します。

sendSearchCriteria はObservable

私が間違っていると思うことはありますか?

ご協力ありがとうございました、

0 投票する
0 に答える
64 参照

javascript - rxjs: ユーザーがスライダーを動かすと徐々に値をフェッチし、前の完了後に新しいリクエストを送信します

目標: ユーザーがスライダーを動かすと、スライダーの値がサーバーに送信されて値 X が計算され、スライダーの横に表示され、スライダーの値が変化すると徐々に更新されます。

私がしたこと: スロットルされた件名を使用switchMapして、値をフェッチしました:

それは仕事をしますが、

問題: サーバーがスロットル時間より長く応答する場合、switchMap オペレーターは前の呼び出しをキャンセルします。したがって、スライダーの動きが遅いと一連のリクエストがキャンセルされ、値はユーザーがスライドを停止したときにのみ更新されます。

改善が必要:サーバー呼び出しごとに、応答が来るまで待機し、表示された値 X を更新してから、スライダーの最新の値で新しい呼び出しを開始する必要があります。保留中のリクエストがあったときにユーザーがスライドを停止した場合、最新のスライダー値を持つ最後の 1 つのリクエストを行う必要があります。

(または、それがどのように機能するかについてより良い考えがある場合)