私はのオブジェクトの配列をConvertedThing
オブジェクトに変換し、Observable<ConvertedThing>
を返す非同期関数を使用しています。observablesの配列から配列のobservableを作成するにはどうすればよいですか?
すべての変換が完了したときに1つの値を出力するObservable<[ConvertedThing]>
を作成したいとします。
これはどのように達成できますか?どんな助けも大変ありがとう!
私はのオブジェクトの配列をConvertedThing
オブジェクトに変換し、Observable<ConvertedThing>
を返す非同期関数を使用しています。observablesの配列から配列のobservableを作成するにはどうすればよいですか?
すべての変換が完了したときに1つの値を出力するObservable<[ConvertedThing]>
を作成したいとします。
これはどのように達成できますか?どんな助けも大変ありがとう!
.merge()
を使用すると、観測値の配列を1つの観測値に結合し、.toArray()
を使用して1つのイベントのリストとして取得できます。 RxSwift 3+使用するため
:将来の読者のため
let arrayOfObservables: [Observable<E>] = ...
let singleObservable: Observable<E> = arrayOfObservables.toObservable().merge()
let wholeSequence: Observable<[E]> = singleObservable.toArray()
:以前のバージョンの
let arrayOfObservables: [Observable<E>] = ...
let singleObservable: Observable<E> = Observable.from(arrayOfObservables).merge()
let wholeSequence: Observable<[E]> = singleObservable.toArray()
すべての観察のシーケンス完全.merge()
を使用
と.toArray()
は、単一の要素を放出します。観測対象のいずれかが発光し続けている場合、発光しないか完了しません。
let arrayOfObservables: [Observable<E>] = ...
let wholeSequence: Observable<[E]> = Observable.combineLatest(arrayOfObservables) { $0 }
私の出発点は、観測の配列ではなく、単一のものである:
.combineLatest()
を使用しては、観察可能な変更するたびに、完全なリストを発する ''から 'Observable <[ConvertedThing]' 'に行きたいと思っています。 –
Paul
Observable
を返します。だから私は '' Observable@Paul:申し訳ありません。更新しました。 – kennytm