Rxjs的操作符下篇

Rxjs的操作符下篇

分組操作符

  • buffer

    buffer(breakObservable) 參數(shù)簽名

    let breakWhen$ = Rx.Observable.timer(1000);
    
    let stream$ = Rx.Observable.interval(200).buffer(breakWhen$);
    
    stream$.subscribe(value => console.log(value));
    // source會緩存所有的值亡呵,直到所有的值緩存一次輸出 0,1,2,3,4
    

    Buffer意味著我們在等待而不會發(fā)出任何值,直到breakObervable發(fā)生硫戈。

  • bufferTime

    基本和buffer的作用是一樣的除了參數(shù)不一樣锰什,buffer傳入的參數(shù)是BreakObservable。然而bufferTime則是以時間作為參數(shù)掏愁,作為緩存的觸發(fā)時機(jī)歇由。

高級參數(shù)

  • Subject

    Subject是一個比較特殊的,它即擁有Observer Observable的行為果港。

    所以Subject即可以訂閱數(shù)據(jù),也可以發(fā)送數(shù)據(jù)

    發(fā)送值

    subject.next(1);
    subject.next(2);
    

    訂閱值

    const subscription = subject.subscribe( (value) => console.log(value) )
    

    Subject的對象擁有以下的方法

    1. next
    2. error
    3. complete
    4. subscribe
    5. Unsubcribe

    通常我們將Subject用來作為代理來使用

    let source$ = Rx.Observable.interval(500).take(3);
    const proxySubject = new Rx.Subject();
    let subscriber = source$.subscribe( proxySubject );
    
    proxySubject.subscribe( (value) => console.log('proxy subscriber', value ) );
    
    proxySubject.next( 3 );
    

    存在一個陷阱: proxySubject在沒有被訂閱前 所有調(diào)用的next方法都是無效的糊昙,在訂閱之后的值將優(yōu)先發(fā)出辛掠。

  • ReplaySubject

    ReplaySubject的值與Subject唯一不同在于,subject在沒有被訂閱前所有的next方法都是無效的释牺,但是replaySubject其實(shí)有一個可以設(shè)置的緩沖區(qū)間萝衩。

    let replaySubject = new Rx.ReplaySubject(2);
    replaySubject.next(1);
    replaySubject.next(2);
    replaySubject.next(3);
    
    replaySubject.subscribe(value => console.log(value))
    

    ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市没咙,隨后出現(xiàn)的幾起案子猩谊,更是在濱河造成了極大的恐慌,老刑警劉巖祭刚,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牌捷,死亡現(xiàn)場離奇詭異,居然都是意外死亡涡驮,警方通過查閱死者的電腦和手機(jī)暗甥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捉捅,“玉大人撤防,你說我怎么就攤上這事“艨冢” “怎么了寄月?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長无牵。 經(jīng)常有香客問我漾肮,道長,這世上最難降的妖魔是什么合敦? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任初橘,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘保檐。我一直安慰自己耕蝉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布夜只。 她就那樣靜靜地躺著垒在,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扔亥。 梳的紋絲不亂的頭發(fā)上场躯,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機(jī)與錄音旅挤,去河邊找鬼踢关。 笑死,一個胖子當(dāng)著我的面吹牛粘茄,可吹牛的內(nèi)容都是我干的签舞。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼柒瓣,長吁一口氣:“原來是場噩夢啊……” “哼儒搭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起芙贫,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤搂鲫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后磺平,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魂仍,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年褪秀,在試婚紗的時候發(fā)現(xiàn)自己被綠了蓄诽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡媒吗,死狀恐怖仑氛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情闸英,我是刑警寧澤锯岖,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站甫何,受9級特大地震影響出吹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辙喂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一捶牢、第九天 我趴在偏房一處隱蔽的房頂上張望鸠珠。 院中可真熱鬧,春花似錦秋麸、人聲如沸渐排。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驯耻。三九已至,卻和暖如春炒考,著一層夾襖步出監(jiān)牢的瞬間可缚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工斋枢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帘靡,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓杏慰,卻偏偏與公主長得像测柠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缘滥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一.背景介紹 Rx(Reactive Extension -- 響應(yīng)式擴(kuò)展 http://reactivex.io...
    愛上Shu的小刺猬閱讀 2,033評論 1 3
  • 發(fā)現(xiàn) 關(guān)注 消息 RxSwift入坑解讀-你所需要知道的各種概念 沸沸騰關(guān)注 2016.11.27 19:11*字...
    楓葉1234閱讀 2,780評論 0 2
  • title: RxJS簡介date: 2017-08-01 09:45:33tags: [JavaScript, ...
    color_cat閱讀 291評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)谒主,斷路器朝扼,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • ???每個周末,蘇沫都會給媽媽打一個長途電話霎肯,和她絮絮叨叨說上半小時至一小時擎颖,當(dāng)然,告訴媽媽的观游,都是挑揀出來開心的...
    月影寒閱讀 416評論 0 1