[英]Sending Latest http Request when previous call finishes in Angular
我正在嘗試完成以下任務:
我有一個請求表,其中包含 4 個字段(A、B、C、D)用於更新票證。 每當用戶退出某個字段(在輸入某些內容后)時,都應向服務器發送請求以更新該票證。 但是,想象一下以下場景:
在這種情況下,我只想將最新的調用(字段 C 的更新)發送到服務器,而不是在 A 的回復完成之前發送。 我試圖在下面說明這一點。
我已經閱讀了幾個關於去抖動和節流的地方,但我似乎無法圍繞完美的解決方案,因為這首先不是基於時間,其次它不應該忽略當前正在進行的事件,這似乎排除了兩者他們。
我考慮過實現一種只為一個項目提供空間的緩沖區,但我認為必須有一個更好的解決方案。
非常感謝任何輸入,謝謝!
看起來您需要switchmap
映射運算符。 每次您的輸入 observable 發出新數據時, Switchmap
都會用新的請求 observable 替換當前請求。 發生這種情況時,第一個請求將被取消。
const requestObservable$ = inputObservable$.pipe(
switchmap(yourInputData => this.http.post("...url",yourInputData))
);
requestObservable$.subscribe(response => console.log(response));
requestObservable$
將響應最新數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.