进行getLastOrder()
和getUserDetails(lastOrder.owner)
异步操作。 (两者都返回Observable
)
寻找花哨的运算符来获得合并结果,其中包括:[lastOrder, userDetails]
谁拥有该订单。
P.S。通过临时变量执行此操作看起来不太漂亮
答案 0 :(得分:1)
不确定花哨的运算符,但通过组合运算符flatMap
和map
可以很容易地解决这个问题。另请注意,我的函数只返回虚拟数据,但对任何observable都应该以相同的方式工作:
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]))
}
当你想到漂亮时,也要考虑下一个会读它的人。