簡體   English   中英

發送最新的 http 請求,當前一個呼叫在 Angular 中完成時

[英]Sending Latest http Request when previous call finishes in Angular

我正在嘗試完成以下任務:

我有一個請求表,其中包含 4 個字段(A、B、C、D)用於更新票證。 每當用戶退出某個字段(在輸入某些內容后)時,都應向服務器發送請求以更新該票證。 但是,想象一下以下場景:

  • 用戶更新字段 A
  • 向服務器發送請求以更新票證。
  • 在對 A 的更新調用完成之前,用戶更新 B,然后更新 C

在這種情況下,我只想將最新的調用(字段 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM