I have an array of Thing objects that I want to convert to ConvertedThing objects, using an asynchronous function that returns Observable<
For future readers:
Using .merge() and .toArray() will emit a single element when all observable sequences complete. If any of the observables keeps emitting, it will not emit or complete.
Using .combineLatest() will return an Observable that emits the full list every time any observable changes:
let arrayOfObservables: [Observable] = ...
let wholeSequence: Observable<[E]> = Observable.combineLatest(arrayOfObservables) { $0 }