如何使用RX应用宽限期?

Pau*_*aul 4 swift rx-swift

我有一个在操作开始和结束时Observable<Bool>发出true的消息false。我想在操作进行时显示一条消息,但前提是开始时间超过两秒。有没有一种方法可以创建可观察的对象并将其绑定到消息?任何帮助,不胜感激!

Car*_*ire 5

如果您切换地图(从源发出第二个项目的平面地图,则取消订阅原始可观察项,并且订阅移至下一个),您可以执行以下操作:

  1. booleanObservable
  2. .switchMap(将true映射到2秒的可观察计时器,将false映射到空的可观察计时器)
  3. .onNext显示您的消息(下一步不会为空触发,快速响应将使2秒计时器中断)。

注意switchMap在RxSwift中是'switchLatest'。

可能会变成这样:

booleanObservable
    .map { inProgress -> Observable<Bool> in
        if inProgress {
            return Observable.just(true).delay(time: 2)
        } else {
            return Observable.just(false)
        }
     }
    .switchLatest()
Run Code Online (Sandbox Code Playgroud)