如何在 RxSwift 中延迟?
How to put delay in RxSwift?
我有一个 Observable 来执行某些任务,我希望它在 5 秒后给我结果,但它在此之前,有时在 5 秒后给我结果,具体取决于复杂性。
例如:
如果我的代码在 2 秒内完成了任务并且即将发出计算值。我希望它再等待 3 秒,然后发出计算值。
我怎样才能做到这一点?我听说过 debounce 和 throttle。
您可以将 Observable.timer
与 Observable.zip
一起使用。
类似于:
Observable<MyType>.zip(
myObservable,
Observable<Int>.timer(RxTimeInterval.seconds(5), scheduler: MainScheduler.instance),
resultSelector: { myItem, _ in return myItem }
)
结果选择器将忽略计时器产生的值。
如果你想延迟你的 Observable
发出一个值,你可以简单地做这样的事情:
Observable.just(()).delay(.seconds(2), scheduler: MainScheduler.instance)
我有一个 Observable 来执行某些任务,我希望它在 5 秒后给我结果,但它在此之前,有时在 5 秒后给我结果,具体取决于复杂性。
例如:
如果我的代码在 2 秒内完成了任务并且即将发出计算值。我希望它再等待 3 秒,然后发出计算值。
我怎样才能做到这一点?我听说过 debounce 和 throttle。
您可以将 Observable.timer
与 Observable.zip
一起使用。
类似于:
Observable<MyType>.zip(
myObservable,
Observable<Int>.timer(RxTimeInterval.seconds(5), scheduler: MainScheduler.instance),
resultSelector: { myItem, _ in return myItem }
)
结果选择器将忽略计时器产生的值。
如果你想延迟你的 Observable
发出一个值,你可以简单地做这样的事情:
Observable.just(()).delay(.seconds(2), scheduler: MainScheduler.instance)