[译]RxJS文档04——Observer 观察者

原文: http://reactivex.io/rxjs/manu...html

什么是Observer? 观察者(Observer)是Observable流推送数据的用户。观察者们(Observers)就是一组callback函数的集合,监听着每个Observable流推送出的不一样类型的通知,包括:next,errorcompletereact

如下是一个经典的观察者对象:函数

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流:code

observable.subscribe(observer);

观察者是一个包含三个回调函数的对象,每个函数都时刻准备接收来自Observable流推送的不一样消息。server

Observer在RxJS中是被优待的。若是没有为某个类型的通知提供callback,Observable流的执行过程仍然会照常进行,可是响应的通知将会被忽略,由于观察者没有提供相应的callback来接收。htm

下面是一个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函数做为参数,而不用完整提供一个包含三个回调的对象,就像下面的例子:rxjs

observable.subscribe(x => console.log('Observer got a next value: ' + x));

observable.subscribe()内部,将会建立一个观察者对象(Observer object),并将第一个参数提供的callback做为next通知的响应函数。接受三个类型通知的callback也能够分别以参数的形式提供:get

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')
);
相关文章
相关标签/搜索