我在Angular 2最終版本中對observable(http.get的結果)使用訂閱方法。雖然subscribe方法的第一個參數是從後端獲取數據的函數,但第二個參數是在錯誤時執行的函數(如狀態http代碼404),但我不明白第三個參數/函數的含義。在http.get observable上訂閱方法:第三個參數是什麼?
希望它執行總是當請求已經結束(成功或錯誤),我刪除/停止加載它的指示器,但第三個函數不會錯誤調用。
我在Angular 2最終版本中對observable(http.get的結果)使用訂閱方法。雖然subscribe方法的第一個參數是從後端獲取數據的函數,但第二個參數是在錯誤時執行的函數(如狀態http代碼404),但我不明白第三個參數/函數的含義。在http.get observable上訂閱方法:第三個參數是什麼?
希望它執行總是當請求已經結束(成功或錯誤),我刪除/停止加載它的指示器,但第三個函數不會錯誤調用。
當observable完成時,將調用第三個回調函數。這意味着觀察者不會再發射任何事件。 當前由Http.xxx
調用返回的可觀測量僅發出一個單一事件並在之後完成,因此第一個和第三個回調被同時調用(一個接一個),但Http
可能更改爲最終發出多個事件,然後每個事件都會調用第一個回調,第三個回調在最後一個事件之後被調用一次。
每個序列的第三個參數是完整的處理程序。它被調用時沒有參數,只是通知完成的序列。
Observable.from([1,3]).subscribe(
(v => console.log('value: ', v)),
(e => console.log('error: ', e)),
(() => console.log('the sequence completed!'))
將打印:
值:1
值:2
的順序完成
所以我能得到其中之一:1,3或2,3,但是3被稱爲無論如何? –
在最後一次事件之後,應該總是調用2或3中的一個。在成功的情況下,調用3,如果發生錯誤,則只調用2(但不是3)。 –
所以我必須停止加載1和2中的指標。我怎樣才能消除這種重複? –