我在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中的指标。我怎样才能消除这种重复? –