簡體   English   中英

服務文件 Angular 2 中的異步函數

[英]Async function in service file Angular 2

我構建了一個 Angular(14) 應用程序,我需要在其中將一些數據存儲在數據庫中。 所以我有一個帶按鈕的組件,我想按下這個按鈕並在三個不同的組件中做一些事情,當它們都完成后我想將數據發送到后端。

我想讓它與此類似,Button 將觸發 4 個函數,當所有完成后,servicefile 將發送到后端

我試圖讓每個孩子都傳遞數據的三個主題但這沒有用,因為我不知道這三個孩子中的哪一個會先完成。 我認為如果我讓按鈕觸發孩子 1 觸發孩子 2 觸發孩子 3 然后從孩子 3 觸發將數據發送到后端的 menthod,它會起作用。 但這將是丑陋的。

我確實設法讓它與每個孩子的發射一起工作,但它們非常嵌套,所以我不喜歡這個解決方案。

我曾嘗試使用異步/等待,但在谷歌上找不到任何關於此 senario 的建議,所有等待/異步接縫都將在使用 http 請求時使用。

我真的很希望 async/await 方法起作用。 你們有沒有一個好的和干凈的建議,或者你有一個例子,其中 async/await 不與 http 請求一起使用?

我想可能有 rxjs 運算符的組合可以處理這個問題,但我想不出一個。

我認為最直接的方法是在所有三個“孩子”中處理帶有按鈕啟動處理的組件,並讓每個孩子都有一個主題來發出它的結果。

然后,讓服務訂閱 3 個孩子的 observables,存儲每個 observables 的值,當每個值到達時,檢查是否所有 3 個都存在。 當第三個值出現時,執行 api 調用,然后將所有 3 個值設置為空,等待所有三個值再次非空。 沖洗並重復。

暫無
暫無

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

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