原文: http://reactivex.io/rxjs/manu...html
什麼是Observer? 觀察者(Observer)是Observable流推送數據的用戶。觀察者們(Observers)就是一組callback函數的集合,監聽着每個Observable流推送出的不一樣類型的通知,包括:next
,error
和complete
。react
如下是一個經典的觀察者對象:函數
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') );