[譯]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')
);
相關文章
相關標籤/搜索