2017-07-26 83 views
2

我在這裏尋找答案,但沒有發現,所以我會繼續嘗試解釋我的情況,盡我所能,希望我能得到一個。連續休息API http呼叫angular 4

這是的情況:我正在建立一個角度4 SPA,消耗一個其餘的API後端。 在我的組件之一,我不得不從後端(從不同的方法)獲取幾組數據,我需要所有這些不同的數據集在我的組件中顯示圖表。

如果我只是在我的Init方法中進行連續的http調用,然後調用我的process_data方法,那麼angular在調用處理方法之前不會等待所有http響應。因此,當所有需要的數據不一定存在時,該方法被調用,這可能導致錯誤。

的解決方案,我現在所擁有的:我實現了暫時的解決方法是如下:

  • 我做第一個HTTP請求,而我訂閱。
  • 在這個訂閱我做第二個HTTP請求,而我也訂閱
  • 依此類推爲每個後續HTTP請求
  • 在過去.subscribe()我打電話給我的處理方法。

結果是一個很大的Init方法,因爲所有嵌套的http請求都很難讀取/調試。 所以修復工作,但它是醜陋的,將很難重用,這是一個嚴重的問題,因爲我正在開發這個公司。這使我的...

問:有沒有更好的(更清潔/標準/良好的做法)的方式來實現相同的結果?

TL; DR:在繼續之前,是否有一種很好的方法可以使幾個連續的http請求等待所有完成(並等待響應)?雖然我正在爲一家公司開發SPA,但我只是一名實習生(因此,仍然在學校,仍在學習繩索)。除了不是一個真正的工程師,我也是一般的新角色和網站開發人員。當然,如果我的問題的答案很明顯,我表示歉意。

其次,英語不是我的母語,所以我也對我的文章中任何與英語有關的錯誤表示歉意。

我事先感謝你們所有人提供的答案。

回答

3

我相信你會在Flatmaps或其他解決方案中找到你要找的東西。

Flatmaps將幫助您使多個HTTP請求呈線性。

引述官方文檔:

變換通過一個可觀察到可觀測量發射的項目,然後壓平不同於排放到使用Observable.forkJoin單個可觀測

+1

溶液中所呈現的你鏈接的教程確實是一個非常乾淨的做我想做的事情,我強烈建議任何有同樣問題的人使用這種模式。非常感謝你。 –