如何观察 属性 是否在 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)

我假设我们可以使用 debouncethrottle,但不确定如何使用。

试试这个:

// 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)