W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
將源 Observable 值分支為每個(gè)嵌套的 Observable 值 嵌套的 Observable 發(fā)射最多 windowSize
值。
windowCount<T>(windowSize: number, startWindowEvery: number = 0): OperatorFunction
<T, Observable
<T>>
windowSize | 每個(gè)發(fā)出的最大值數(shù) 窗口。 |
---|---|
startWindowEvery | 可選的。 默認(rèn)值為 0 。 開(kāi)始新窗口的時(shí)間間隔。 例如,如果 startWindowEvery 為 2 ,則將啟動(dòng)一個(gè)新窗口 來(lái)自來(lái)源的所有其他值。 一個(gè)新的窗口在 默認(rèn)情況下源的開(kāi)頭。 |
OperatorFunction<T, Observable<T>>
:可觀察到的窗戶 是可觀察的值。
就像 bufferCount
,但發(fā)出嵌套 可觀察的而不是數(shù)組。
返回一個(gè) Observable,它發(fā)出從源收集到的項(xiàng)目的窗口 可觀察的。 輸出 Observable 每次發(fā)射一個(gè)窗口 startWindowEvery
項(xiàng),每個(gè) 最多包含 windowSize
項(xiàng) 項(xiàng)。 當(dāng)來(lái)源 Observable 完成或遇到錯(cuò)誤,輸出Observable發(fā)出 當(dāng)前窗口并傳播來(lái)自源的通知 可觀察的。 如果 startWindowEvery
未提供,則新窗口是 在源代碼的開(kāi)始以及每個(gè)窗口完成時(shí)立即開(kāi)始 與大小 windowSize
。
從第一個(gè)事件開(kāi)始,忽略每個(gè)第3次點(diǎn)擊事件
import { fromEvent } from 'rxjs';
import { windowCount, map, mergeAll, skip } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
windowCount(3),
map(win => win.pipe(skip(1))), // skip first of every 3 clicks
mergeAll() // flatten the Observable-of-Observables
);
result.subscribe(x => console.log(x));
從第三個(gè)點(diǎn)擊事件開(kāi)始,忽略每個(gè)第3次點(diǎn)擊事件
import { fromEvent } from 'rxjs';
import { windowCount, mergeAll } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
windowCount(2, 3),
mergeAll(), // flatten the Observable-of-Observables
);
result.subscribe(x => console.log(x));
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: