throttle<R> method

  1. @visibleForTesting
  2. @protected
FutureOr<R?> throttle<R>(
  1. Object tag,
  2. Duration duration,
  3. FutureOr<R> action(), {
  4. bool ensureLast = false,
})
inherited

throttle 节流: 固定频率执行。 配合 mutex 解决异步任务重叠问题:如果周期到了但上次任务还没跑完,直接跳过。 ensureLast: 如果为 true,则在节流期间的最后一次触发将被防抖补发。

Implementation

@visibleForTesting
@protected
FutureOr<R?> throttle<R>(
  Object tag,
  Duration duration,
  FutureOr<R> Function() action, {
  bool ensureLast = false,
}) {
  return _slowly.throttle(
    tag,
    action,
    duration: duration,
    ensureLast: ensureLast,
  );
}