throttle
function stable operator
Выпускает значение из источника Observable, затем игнорирует последующие значения источника в течение периода времени, определяемого другим Observable, затем повторяет этот процесс.
throttle<T>(durationSelector: (value: T) => ObservableInput<any>, config?: ThrottleConfig): MonoTypeOperatorFunction<T>
Параметры
durationSelector | (value: T) => ObservableInput<any> | Функция, которая получает значение из источника Observable для вычисления периода заглушки для каждого значения источника, возвращаемого как |
config | ThrottleConfig | Необязательно. По умолчанию Объект конфигурации для определения поведения |
Возвращает
MonoTypeOperatorFunction<T>: функция, которая возвращает Observable, выполняющий операцию throttle для ограничения скорости выдачи из источника.
Описание
Это как throttleTime, но период заглушки определяется вторым Observable.
throttle выпускает значения источника Observable в выходном Observable, когда его внутренний таймер отключён, и игнорирует значения источника, когда таймер включён. Изначально таймер отключён. Как только придёт первое значение источника, оно передаётся в выходное Observable, а затем таймер включается путём вызова функции durationSelector со значением источника, которая возвращает Observable "duration". Когда Observable duration выпускает значение, таймер отключается, и этот процесс повторяется для следующего значения источника.
Пример
Выпуск кликов со скоростью не более одного клика в секунду
import { fromEvent, throttle, interval } from 'rxjs';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(throttle(() => interval(1000)));
result.subscribe(x => console.log(x)); См. также
© 2015–2022 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/throttle