什么是Observer? 观察者(Observer)是Observable流推送数据的用户。观察者们(Observers)就是一组callback函数的鸠合,监听着每个Observable流推送出的差别范例的关照,包括:next
,error
和complete
。
以下是一个典范的观察者对象:
var observer = {
next: x => console.log('Observer got a next value: ' + x),
error: err => console.error('Observer got an error: ' + err),
complete: () => console.log('Observer got a complete notification'),
};
为了运用观察者,需要让他定阅一个Observable流:
observable.subscribe(observer);
观察者是一个包括三个回调函数的对象,每个函数都时刻预备吸收来自Observable流推送的差别音讯。
Observer在RxJS中是被厚待的。假如没有为某个范例的关照供应callback,Observable流的实行历程仍然会照常进行,然则响应的关照将会被疏忽,由于观察者没有供应响应的callback来吸收。
下面是一个Observer没有供应complete
响应(callback)的例子:
var observer = {
next: x => console.log('Observer got a next value: ' + x),
error: err => console.error('Observer got an error: ' + err),
};
定阅一个Observable流的时刻,你也能够只供应一个callback函数作为参数,而不必完全供应一个包括三个回调的对象,就像下面的例子:
observable.subscribe(x => console.log('Observer got a next value: ' + x));
在observable.subscribe()
内部,将会建立一个观察者对象(Observer object),并将第一个参数供应的callback作为next
关照的响应函数。接收三个范例关照的callback也能够离别以参数的情势供应:
observable.subscribe(
x => console.log('Observer got a next value: ' + x),
err => console.error('Observer got an error: ' + err),
() => console.log('Observer got a complete notification')
);