如何观察 属性 是否在 RxSwift 中的特定时间间隔内没有变化
How to observe if a property doesn't change for a specific interval in RxSwift
我想观察 speed
属性 的 CLLocation 更新,如果速度在 10 秒内没有变化并且如果速度变化重置计时器则触发事件。到现在只能想出这么多代码
let location: Observable<CLLocation>
location.subscribe(onNext: { (coordinates) in
print(coordinates)
})
.disposed(by: disposeBag)
我假设我们可以使用 debounce
或 throttle
,但不确定如何使用。
试试这个:
// will emit element when speed doesn't change for 10 seconds
let lastLocation = location
.distinctUntilChanged { [=10=].speed == .speed }
.debounce(.seconds(10), scheduler: MainScheduler.instance)
Observable.merge(location, lastLocation)
.subscribe(onNext: { coordinates in
print(coordinates)
})
.disposed(by: disposeBag)
我想观察 speed
属性 的 CLLocation 更新,如果速度在 10 秒内没有变化并且如果速度变化重置计时器则触发事件。到现在只能想出这么多代码
let location: Observable<CLLocation>
location.subscribe(onNext: { (coordinates) in
print(coordinates)
})
.disposed(by: disposeBag)
我假设我们可以使用 debounce
或 throttle
,但不确定如何使用。
试试这个:
// will emit element when speed doesn't change for 10 seconds
let lastLocation = location
.distinctUntilChanged { [=10=].speed == .speed }
.debounce(.seconds(10), scheduler: MainScheduler.instance)
Observable.merge(location, lastLocation)
.subscribe(onNext: { coordinates in
print(coordinates)
})
.disposed(by: disposeBag)