Swift Package Index

RxSmartThrottle

https://github.com/toshi0383/rxsmartthrottle.git

Observable.throttle with custom intervals


RxSmartThrottle

Observable.throttle with custom interval.

Example: Exponential Backoff

source
    .throttle(dueTime: { max($1 * 2, 1) }, // (E, RxTimeInterval) -> RxTimeInterval
              resetWhen: resetTrigger,     // Observable<U>
              latest: true,
              scheduler: scheduler)
    .disposed(by: disposeBag)

With the parameters above,

  • throttle interval increases exponentially (1, 2, 4, 8...),
  • until the resetWhen's next event.

After resetWhen, throttle interval is reset to 0 (meaning that next source's event will be forwarded immediately)

Install

Copy paste source file to your project for now. 👌

I'm just too lazy to support Carthage or CocoaPods. It's Saturday afternoon.

LICENSE

MIT