getLastOrder()
とgetUserDetails(lastOrder.owner)
の非同期操作があります。 (両方とも返品Observable
)RxJSトリッキージップ2オブザーバブル
ファンシーオペレーターが両方を含む組み合わせの結果を得ることを探しています:[lastOrder, userDetails]
この注文を所有しています。
P.S.テンポラリ変数を使ってそれを行うのはきれいに見えません
getLastOrder()
とgetUserDetails(lastOrder.owner)
の非同期操作があります。 (両方とも返品Observable
)RxJSトリッキージップ2オブザーバブル
ファンシーオペレーターが両方を含む組み合わせの結果を得ることを探しています:[lastOrder, userDetails]
この注文を所有しています。
P.S.テンポラリ変数を使ってそれを行うのはきれいに見えません
ファンシーな演算子についてはわかりませんが、これは演算子flatMap
とmap
を組み合わせることで簡単に解決できます。また、私の機能だけでダミーデータを返すが、任意の観測と同じように動作しなければならないことに注意してください:あなたがprettynessについて考えるとき
function getLastOrder() {
return Rx.Observable.of({owner: 'foo'})
}
function getUserDetails(owner) {
return Rx.Observable.of({details: 'bar', owner})
}
function combined() {
return getLastOrder()
.flatMap(order => getUserDetails(order.owner).map(details => [order, details]))
}
、また、それを読み込みます隣の男を考えます。
ヒント: '.flatmap(x => doIt(x).map(y => [x、y])'と書くと、[resultSelector](http://reactivex.io/rxjs/) (x、y)=> [x、y]) 'ボーナスとしてあなたも追加しました。 'x'と' y'のインデックスにアクセスする –
操作の意味を広げることはできますか? 'A'は' Observable'を返す関数ではなく、 'Observable'を変換する' B'関数ですか? –
実際に達成しようとしていることのあまり抽象的な例はありませんか? – jonrsharpe
申し訳ありませんが、編集した質問は完全です。 – Nikita