我有如下代码。我怎样才能在一条链中实现它,而不使用定时器订阅?我想将“timerInterval”附加到“timer”,然后调用订阅。
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)
}
最佳答案
您会选择 map 运算符(operator)。我不确定你为什么需要 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
}
}
关于ios - 将 BehaviorRelay 与 Observable 绑定(bind) - RxSwift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55758695/