rxjs - RXJS Observables 如何从 mergeMap 访问多个可观察值
问题描述
我有一个使用多个 rxjs 运算符的 rxjs 函数,我最终需要从中返回一个 observable。下面的示例代码中详细说明了我的挑战,并详细说明了我正在尝试做的事情。我怎样才能做到这一点?我需要重写吗?如果没有我试图从 Observable3 访问值的更改,一切都会按需要进行。我已经尝试了很多事情,包括withLatestFrom
用来引入可观察到的三个,combineLatest
但也没有运气。
Observable3 = of({obs3Prop1: value1, obs3Prop2: value2})
this.Observable1
.pipe(
switchMap(param1) => {
return this.getCount(param1);
}),
mergeMap((param2: number) =>
this.Observable2
.pipe(
//inside this pipe, return another observable from here using some rxjs operators
//where I need access to param2
//but I also need access to the value from Observable3
)
),
)
解决方案
forkJoin()
假设所有源 Observables 完成,您似乎可以使用:
mergeMap((param2: number) =>
forkJoin([
Observable3,
this.Observable2,
]).pipe(
mergeMap(([o3params, o2params]) => this.makeCall(o3params.param1, o2params)),
)
),
推荐阅读
- java - 版本更新后删除了 Wicket DropDownChoice onSelectionChanged 方法
- hyperledger-fabric - Docker swarm 部署 Hyperledger Fabric
- html - 为什么输入类型号不接受值'+'?
- excel - SSIS Excel 源无法导入 Excel 文件
- python-3.x - 使用 python 3 在一条线上的最大点数
- javascript - 选中或未选中按钮,javascript
- vue.js - Vuex 状态不重新加载就不会更新
- javascript - 如何在不使用系统时间的情况下在 Javascript 中获取当前日期/时间?
- laravel - Laravel 通过 user_id 列获取所有对话,每个对话都应该获取所有消息
- javascript - 无法裁剪图像并出现错误:无法编译片段着色器 Tensorflow.js