visual una matriz matrices llenar hacer como arrays swift rx-swift

arrays - matrices - ¿Cómo creo un observable de una matriz a partir de una matriz de observables?



como hacer matrices en visual basic (2)

Tengo una matriz de objetos Thing que quiero convertir en objetos ConvertedThing , utilizando una función asíncrona que devuelve Observable<ConvertedThing> .

Me gustaría crear un Observable<[ConvertedThing]> que emita un valor cuando todas las conversiones se hayan completado.

¿Cómo se puede lograr esto? Cualquier ayuda muy apreciada!


Para futuros lectores:

El uso de .merge() y .toArray() emitirá un solo elemento cuando todas las secuencias observables se .toArray() completado. Si alguno de los observables sigue emitiendo, no emitirá ni completará.

El uso de .combineLatest() devolverá un Observable que emite la lista completa cada vez que se produzcan cambios observables:

let arrayOfObservables: [Observable<E>] = ... let wholeSequence: Observable<[E]> = Observable.combineLatest(arrayOfObservables) { $0 }


Puede usar .merge() para combinar la matriz de observables en un solo observable y luego usar .toArray() para obtenerlos como una lista en un solo evento.

Para el uso de RxSwift 3+:

let arrayOfObservables: [Observable<E>] = ... let singleObservable: Observable<E> = Observable.from(arrayOfObservables).merge() let wholeSequence: Observable<[E]> = singleObservable.toArray()

Para versiones anteriores:

let arrayOfObservables: [Observable<E>] = ... let singleObservable: Observable<E> = arrayOfObservables.toObservable().merge() let wholeSequence: Observable<[E]> = singleObservable.toArray()