Реле поведения привязки с наблюдаемым - RxSwift - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть такой код, как показано ниже.Как я могу добиться этого в одной цепочке, не используя подписку на таймер?Я хотел бы присоединить '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)
}

1 Ответ

1 голос
/ 19 апреля 2019

Вы бы пойти на карту оператораЯ не уверен, зачем вам нужен 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
          }
}

...