RxJS windowToggle

2020-10-14 10:44 更新

從以下位置將源 Observable 值分支為嵌套的 Observable 從發(fā)射 openings和結(jié)束時(shí)的輸出 closingSelector 發(fā)出。

windowToggle<T, O>(openings: Observable<O>, closingSelector: (openValue: O) => Observable<any>): OperatorFunction<T, Observable<T>>

參量

開(kāi)口 可觀察到的開(kāi)始新的通知 視窗。
關(guān)閉選擇器 一個(gè)需要的功能  發(fā)出的 openingsObservable 值并返回 Observable,  當(dāng)它發(fā)出( 時(shí)發(fā)出 next或 complete) 信號(hào),表明  關(guān)聯(lián)窗口應(yīng)完成。

returns

OperatorFunction<T, Observable<T>>:可觀察到的窗戶 是可觀察的。

Description

It's like bufferToggle, but emits a nested Observable instead of an array.

返回一個(gè) Observable,它發(fā)出從源收集到的項(xiàng)目的窗口 可觀察的。 輸出 Observable 發(fā)出包含這些項(xiàng)目的窗口 由源發(fā)出的時(shí)間在 openings Observable 發(fā)出一個(gè)項(xiàng)目,當(dāng) Observable 返回 closingSelector發(fā)射一個(gè)物品。

每隔一秒鐘,從接下來(lái)的 500ms 發(fā)出點(diǎn)擊事件

import { fromEvent, interval, EMPTY } from 'rxjs';
import { windowToggle, mergeAll } from 'rxjs/operators';


const clicks = fromEvent(document, 'click');
const openings = interval(1000);
const result = clicks.pipe(
  windowToggle(openings, i => i % 2 ? interval(500) : EMPTY),
  mergeAll()
);
result.subscribe(x => console.log(x));

也可以看看

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)