Создайте несколько наблюдаемых из одного - RxSwift - PullRequest
0 голосов
/ 19 ноября 2018

У меня относительно дорогая операция, поэтому я хочу выполнить эту операцию один раз и создать из нее 2 Observables.

Вот как это выглядит:

let outputObservable1: Observable<Bool>
let outputObservable2: Observable<Bool>

(outputObservable1, outputObservable2) = inputObservable1.zip(inputObservable2).map { booleanCondition1, booleanCondition2 in
   // different condition combinations create different outputObservables
}

Я предполагаю, map не является правильным оператором здесь, поскольку он даст только одну наблюдаемую. Как я могу смешать и сопоставить условия и вернуть сразу 2 Observables?

1 Ответ

0 голосов
/ 20 ноября 2018

Исходя из моего понимания, вам просто нужно использовать map

let inputs = Observable.zip(inputObservable1, inputObservable2)
    .share() // you only need this if one of your inputs is making a network request.

let outputObservable1 = inputs
    .map { first, second in 
        return true // or false depending on the values of first & second.
    }
let outputObservable2 = inputs
    .map { first, second in 
        return true // or false depending on the values of first & second.
    }
...