W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
windowTime<T>(windowTimeSpan: number): OperatorFunction
<T, Observable
<T>>
windowTimeSpan | 類型: number 。 |
---|
OperatorFunction<T, Observable<T>>
? windowTime(windowTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>
定期將源 Observable 值分支為嵌套 Observable 及時。
參量 | 類型 |
---|---|
windowTimeSpan | 填充每個窗口的時間 |
調(diào)度器 | 可選的。 默認值為 undefined 。 要在其上調(diào)度的調(diào)度程序 確定窗口邊界的間隔。 |
returns OperatorFunction<T, Observable<T>>
:可觀察到的窗戶 是可觀察的。 就像 bufferTime
,但發(fā)出嵌套 可觀察的而不是數(shù)組。 返回一個 Observable,它發(fā)出從源收集到的項目的窗口 可觀察的。 輸出 Observable 會定期啟動一個新窗口,如下所示 由 確定 windowCreationInterval
參數(shù) 。 它發(fā)出每個窗口 在固定的時間間隔后,由 指定 windowTimeSpan
參數(shù) 。 當源 Observable 完成或遇到錯誤時,輸出 Observable 發(fā)出當前窗口并傳播來自源的通知 可觀察的。 如果 windowCreationInterval
未提供,則輸出 當上一個持續(xù)時間窗口出現(xiàn)時,Observable 將啟動一個新窗口 windowTimeSpan
完成。 如果 maxWindowCount
提供,則每個窗口 將發(fā)出最多固定數(shù)量的值。 窗口將立即完成 發(fā)出最后一個值后,下一個仍然會按照 windowTimeSpan
和 windowCreationInterval
爭論。 例子 在每個 1 秒的窗口中,最多發(fā)出 2 次點擊事件
import { fromEvent } from 'rxjs';
import { windowTime, map, mergeAll, take } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
windowTime(1000),
map(win => win.pipe(take(2))), // each window has at most 2 emissions
mergeAll(), // flatten the Observable-of-Observables
);
result.subscribe(x => console.log(x));
每5秒啟動一個窗口,時間為1秒,每個窗口最多發(fā)出2次點擊事件
import { fromEvent } from 'rxjs';
import { windowTime, map, mergeAll, take } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
windowTime(1000, 5000),
map(win => win.pipe(take(2))), // each window has at most 2 emissions
mergeAll(), // flatten the Observable-of-Observables
);
result.subscribe(x => console.log(x));
與上面的示例相同,但具有maxWindowCount而不是take
import { fromEvent } from 'rxjs';
import { windowTime, mergeAll } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
windowTime(1000, 5000, 2), // each window has still at most 2 emissions
mergeAll(), // flatten the Observable-of-Observables
);
result.subscribe(x => console.log(x));
windowTime(windowTimeSpan: number, windowCreationInterval: number, scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>
參量 | 類型 |
---|---|
windowTimeSpan | 類型: number |
windowCreationInterval | 類型: number |
調(diào)度器 | 可選的。 默認值為 undefined 類型: SchedulerLike 。 |
returns OperatorFunction<T, Observable<T>>
windowTime(windowTimeSpan: number, windowCreationInterval: number, maxWindowSize: number, scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>
參量 | 類型 |
---|---|
windowTimeSpan | 類型: number |
windowCreationInterval | 類型: number |
maxWindowSize | 類型: number |
調(diào)度器 | 可選的。 默認值為 undefined . 類型: SchedulerLike 。 |
returns OperatorFunction<T, Observable<T>>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: