可观察的绑定BehaviorRelay-RxSwift

时间:2019-04-19 08:12:54

标签: ios swift rx-swift

我有如下代码。如何在不使用计时器的情况下在一链中实现它?我想将“ timerInterval”附加到“ timer”,然后调用subscribe。

var timerInterval: BehaviorRelay<String> = BehaviorRelay(value: "")

...

func doLogic() {
    let timer = Observable<Int>.interval(0.05, scheduler: MainScheduler.instance)

    timer.subscribe({ [weak self] value in
            let doubleValue = Double(value.element ?? 0)
            let dividedValue = doubleValue / 20.0
            let text = String(format: "%.2f", dividedValue)
            self?.timerInterval.accept(text)
        }).disposed(by: disposeBag)
}

1 个答案:

答案 0 :(得分:1)

您会去找地图运营商。我不确定您为什么需要BehaviourRelay,但我会做一些更简单的事情:

let timer = Observable<Int>.interval(0.05, scheduler: MainScheduler.instance)

var timerInterval: Observable<String> {
   return timer.map { value -> String in
             let doubleValue = Double(value.element ?? 0)
             let dividedValue = doubleValue / 20.0
             let text = String(format: "%.2f", dividedValue)
             return text
          }
}