Je veux atteindre un résultat comme celui-ci:
L -1-2-3------4------5-6-7-8----
R ---------A------B----------C--
O ---------A3-----B4---------C8
Donc, fondamentalement, quelque chose comme withLatestFrom mais en combinant les valeurs des deux observables (comme combine tout dernier).
Je suppose qu'il n'y a pas d'opérateur prêt pour cela. Une idée comment y parvenir?
Utilisez simplement le sélecteur résultant de votre withLatestFrom
. L'implémentation surchargée sans fermeture ignore tout d'abord l'observable. Par exemple:
Observable.just("one")
.withLatestFrom(Observable.just(1))
{ oneAsString, oneAsInt in return (oneAsString, oneAsInt) }
Vous pouvez y parvenir en utilisant combineLatest
avec distinctUntilChanged
suivi de map
.
Observable.combineLatest(L,R) { lhs, rhs in
return (lhs, rhs)
}
.distinctUntilChanged { last, new in
return last.1 != new.1
}
.map { combined in
//Do your thing to create the combination
}