W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
從源 Observable 發(fā)出值,然后忽略后續(xù)源 值(以 為 duration
毫秒 單位),然后重復(fù)此過程。
throttleTime<T>(duration: number, scheduler: SchedulerLike
= async, config: ThrottleConfig
= defaultThrottleConfig): MonoTypeOperatorFunction
<T>
持續(xù)時間 | 等待之后再發(fā)射另一個值的時間 發(fā)出以毫秒為單位或確定的時間單位的最后一個值 內(nèi)部由可選 scheduler 。 |
---|---|
調(diào)度器 | 可選的。 默認值為 async 。 該 SchedulerLike 用于 管理處理節(jié)流的計時器。 |
配置 | 可選的。 默認值為 defaultThrottleConfig 。 一個配置對象來定義 leading 和 trailing 行為。 默認為 { leading: true, trailing: false } 。 |
MonoTypeOperatorFunction<T>
:執(zhí)行可進行油門操作的 Observable 限制源頭的排放速率。
讓值通過,然后忽略 接下來的 duration
毫秒。
throttleTime
在輸出 Observable 上發(fā)出源 Observable 值 禁用其內(nèi)部計時器時,并在計時器時忽略源值 已啟用。 最初,計時器被禁用。 最早的來源 值到達,將其轉(zhuǎn)發(fā)到輸出 Observable,然后計時器 已啟用。 后 duration
毫秒(或時間單元確定 在內(nèi)部由可選的 scheduler
)傳遞,計時器已禁用, 并對下一個源值重復(fù)此過程。 (可選) SchedulerLike
用于管理計時器。
以每秒最多一次點擊的速度發(fā)出點擊
import { fromEvent } from 'rxjs';
import { throttleTime } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(throttleTime(1000));
result.subscribe(x => console.log(x));
以下示例僅發(fā)出在后續(xù)事件中發(fā)生的點擊 上次點擊延遲 400 毫秒。 例如,這可以模擬一個 double 點擊。 它利用 的 trailing
了節(jié)氣門配置 參數(shù)。
import { fromEvent, asyncScheduler } from 'rxjs';
import { throttleTime, withLatestFrom } from 'rxjs/operators';
// defaultThottleConfig = { leading: true, trailing: false }
const throttleConfig = {
leading: false,
trailing: true
}
const click = fromEvent(document, 'click');
const doubleClick = click.pipe(
throttleTime(400, asyncScheduler, throttleConfig)
);
doubleClick.subscribe((throttleValue: Event) => {
console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`);
});
如果 啟用該 leading
在此示例中 參數(shù),則輸出將是主點擊, 雙擊,但將額外的點擊限制在 400 毫秒內(nèi)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: