そのような観察可能なものを考えると
Rx.Observable.of([1,2,3,4,5])
これは単一のアイテム(つまり配列)を出力します、演算子は何ですかこれはこのオブザーバブルを次のオブザーバブルに変換します5つの単一アイテム(または配列が構成するもの)を放出しますか?
例は.of
にありますが、promiseを介して配列をフェッチする場合も同じであり、他にも多くの例がある可能性があります。 of
をfrom
に置き換えることを提案しないでください
私はそれを行うための既存のオペレーターを考えることはできませんが、あなたはそれを作ることができます:
arrayEmitting$.concatMap(arrayValues => Rx.Observable.merge(arrayValues.map(Rx.Observable.of)))
またはより単純な
arrayEmitting$.concatMap(Rx.Observable.of)
または最短
arrayEmitting$.concatMap(x => x)
それはテストされていないので、それがあなたのために働いたかどうか、そしてそれがRxjs v4 API(特に最後のもの)を使用しているかどうか私に知らせてください。これは基本的に:
concatMap
を使用します)FlatMap演算子を使用することもできます( https://stackoverflow.com/a/32241743/3338239 ):
Observable.of([1, 2, 3, 4])
.flatMap(x => x)
.subscribe(x => console.log(x));
// output:
// 1
// 2
// 3
// 4
concatMap(x => x)
またはflatMap(x => x)
が機能する理由がわかりません。何も変更されません。これは機能するはずです(rxjs 6以降):
of([4,5,6]).pipe(mergeMap(from))