javascript
[译]RxJS文档04——Observer 观察者
原文: http://reactivex.io/rxjs/manu...
什么是Observer? 觀察者(Observer)是Observable流推送數(shù)據(jù)的用戶。觀察者們(Observers)就是一組callback函數(shù)的集合,監(jiān)聽(tīng)著每一個(gè)Observable流推送出的不同類(lèi)型的通知,包括:next,error和complete。
以下是一個(gè)經(jīng)典的觀察者對(duì)象:
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'), };為了使用觀察者,需要讓他訂閱一個(gè)Observable流:
observable.subscribe(observer);觀察者是一個(gè)包含三個(gè)回調(diào)函數(shù)的對(duì)象,每一個(gè)函數(shù)都時(shí)刻準(zhǔn)備接收來(lái)自O(shè)bservable流推送的不同消息。
Observer在RxJS中是被優(yōu)待的。如果沒(méi)有為某個(gè)類(lèi)型的通知提供callback,Observable流的執(zhí)行過(guò)程仍然會(huì)照常進(jìn)行,但是響應(yīng)的通知將會(huì)被忽略,因?yàn)橛^察者沒(méi)有提供相應(yīng)的callback來(lái)接收。
下面是一個(gè)Observer沒(méi)有提供complete響應(yīng)(callback)的例子:
var observer = {next: x => console.log('Observer got a next value: ' + x),error: err => console.error('Observer got an error: ' + err), };訂閱一個(gè)Observable流的時(shí)候,你也可以只提供一個(gè)callback函數(shù)作為參數(shù),而不用完整提供一個(gè)包含三個(gè)回調(diào)的對(duì)象,就像下面的例子:
observable.subscribe(x => console.log('Observer got a next value: ' + x));在observable.subscribe()內(nèi)部,將會(huì)創(chuàng)建一個(gè)觀察者對(duì)象(Observer object),并將第一個(gè)參數(shù)提供的callback作為next通知的響應(yīng)函數(shù)。接受三個(gè)類(lèi)型通知的callback也可以分別以參數(shù)的形式提供:
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') );總結(jié)
以上是生活随笔為你收集整理的[译]RxJS文档04——Observer 观察者的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 字符串中连续出现最多的子串 amp; 字
- 下一篇: 手工安装kubernetes