Javascript 结合外部和;下一个映射方法的单个参数(数组)的内部可观测性

Javascript 结合外部和;下一个映射方法的单个参数(数组)的内部可观测性,javascript,rxjs,reactivex,redux-observable,Javascript,Rxjs,Reactivex,Redux Observable,我试图做的与CombineTest类似,但是第二个(内部)可观察的对象取决于第一个对象的响应 ajax.get(“/first url”) .map(res=>新事物(res.response) .someMap(thing=> get(`/second url?code=${thing.code}`) .map(res=>newotherthing(res.response)) ).map(([firstThing,secondThing])=>console.log(firstThing,s

我试图做的与CombineTest类似,但是第二个(内部)可观察的对象取决于第一个对象的响应

ajax.get(“/first url”)
.map(res=>新事物(res.response)
.someMap(thing=>
get(`/second url?code=${thing.code}`)
.map(res=>newotherthing(res.response))
).map(([firstThing,secondThing])=>console.log(firstThing,secondThing))
本质上,我希望能够将这两个结果合并成一个单一的结果数组,我可以用它来做第三件事


我的目标是获取数据A和数据B,因为我需要它们来执行特定操作,而获取数据B依赖于已经拥有数据A。

我可以通过执行以下操作来实现这一点:

ajax.get(“/first url”)
.map(res=>新事物(res.response)
.mergeMap(第一件事=>
get(`/second url?code=${firstThing.code}`)
.map(res=>newotherthing(res.response))
.map(第二件事=>[第一件事,第二件事])
).map(([firstThing,secondThing])=>console.log(firstThing,secondThing))
本质上,在第二个可观察对象的响应中,返回我希望在外部可观察对象的
.map

这似乎是rxjs所希望的处理方式。在rxjs的5.x版中,有一个称为结果选择器的东西,可以作为第二个参数传入,以创建类似的内容(它看起来很像上一个内部
.map
),但rxjs v6.0似乎不推荐使用它:


我认为
switchMap
就是您要寻找的。
switchMap
从第一个可观察对象切换到第二个,同时在第一个可观察对象发出新值时取消第二个可观察对象的任何现有实例(给您一个新的第二个可观察对象)@DannyDelott我知道你的信息是从哪里来的。github上有一个现有的票证,使用
switchMap
并合并外部和内部观测值的结果。这是使用
switchMap
的可选第二个参数,称为
resultSelector
。从rxj开始,它似乎已经被弃用了不幸的是,s6.0。它以前似乎与许多map操作符一起工作。