http.get observable 上的订阅方法:第三个参数是什么?
Subscribe method on http.get observable: what is the third argument?
我在 Angular 2 最终版本中对可观察对象(http.get 的结果)使用订阅方法。虽然 subscribe 方法的第一个参数是从后端获取数据的函数,第二个参数是错误执行的函数(如状态 http 代码 404),我不明白第三个 argunent/function 的含义。
希望它在请求结束时总是执行(成功或错误),我remove/stop在其中加载指示器,但第三个功能是未调用错误。
第三个回调在可观察对象完成时调用。这意味着可观察对象将不再发出任何事件。
目前 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
序列完成
我在 Angular 2 最终版本中对可观察对象(http.get 的结果)使用订阅方法。虽然 subscribe 方法的第一个参数是从后端获取数据的函数,第二个参数是错误执行的函数(如状态 http 代码 404),我不明白第三个 argunent/function 的含义。
希望它在请求结束时总是执行(成功或错误),我remove/stop在其中加载指示器,但第三个功能是未调用错误。
第三个回调在可观察对象完成时调用。这意味着可观察对象将不再发出任何事件。
目前 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
序列完成