let subject = PublishSubject<Int>()
subject
.throttle(.seconds(1), scheduler: MainScheduler.instance)
.subscribe(onNext: { value in
print("RxSwift Throttle : \(value)")
}, onError: { _ in
print("RxSwift Throttle Error")
}, onCompleted: {
print("RxSwift Throttle Finish")
})
.disposed(by: disposeBag)
for i in 0 ..< 10 {
subject.onNext(i)
}
// RxSwift Throttle : 0
// RxSwift Throttle : 9
let property = MutableProperty<Int>(0)
property.signal
.throttle(1, on: QueueScheduler.main)
.observe { event in
switch event {
case let .value(value):
print("ReactiveSwift Throttle : \(value)")
case .failed:
print("ReactiveSwift Throttle Error")
case .completed:
print("ReactiveSwift Throttle Finish")
default:
break
}
}
for i in 0 ..< 10 {
property.value = i
}
// ReactiveSwift Throttle : 9