簡體   English   中英

在完成另一個Observable之后觸發第二個表單提交點擊

[英]Trigger 2nd form submit click after another Observable is done

這是我們只想使用RXJS Observables要做的簡單過程:

  1. 單擊登錄按鈕(帶有用戶名和密碼的表單)。 Observable.fromEvent與我們的表單綁定。
  2. 提交表單后,調用loginUser() ,它將http請求發送到服務器並返回Observable。
  3. 如果HTTP請求正在進行中:單擊登錄按鈕不應觸發另一個登錄請求。
  4. 如果HTTP請求未在進行中:單擊登錄按鈕應觸發另一個登錄請求。

take(1)takeUntil()takeLast()並沒有幫助我們。 那么,如果我們在500ms內單擊“登錄”按鈕5次,並在loginUser()完成后使其再次可用,那么停止登錄執行的正確方法是什么?

這應該僅適用於Observables,唯一的問題是最后一部分,如前一句所述。

謝謝大家的幫助!

您可以使用現在已知的flatMapFirstexhaustMap 其背后的想法是,每次單擊將創建一個新的Observable,隨后將其展平。 它會在進行任何新事件時以靜默方式刪除任何新事件。

Observable.fromEvent(submit, 'click')
  .map(() => {}) // Login values
  .exhaustMap(credentials => loginUser(credentials))
  .subscribe(x => console.log("Logged in!"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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