javascript - 如何在第二个 SwitchMap 中返回 2 个响应对象并在订阅方法中使用
问题描述
.pipe(
switchMap(x => { return this.clientService.A(); }),
filter(firstResp => Helpers.IsNotNull(firstResp)),
switchMap(firstRep => { return this.clientService.B(firstResp.someProp); }),
).subscribe(
//Want to access response of both services in subscribe method.
);
第一个 SwitchMap 正在返回服务A 的响应,该响应将进入第二个 SwitchMap。在这个订阅方法中,我需要使用两个 swithMap 响应。我怎样才能做到这一点?
注意 -两种服务响应类型都是不同的。
解决方案
您可以嵌套管道:
.pipe(
switchMap(x => this.clientService.A()),
filter(firstResp => Helpers.IsNotNull(firstResp)),
switchMap(firstRep => this.clientService.B(firstResp.someProp)
.pipe(map(b => [firstRep, b]))),
).subscribe(([a, b]) => {
// stuff
});
推荐阅读
- python - 我怎样才能让这个二分搜索工作?
- python - 如何使用 python csv 或 pandas 模块水平组合多个 CSV 文件?
- python - 在 python 中的 Wxpython 中第二次打印时出错
- django - Django 添加第二个静态文件 URL
- python - 在python中将类返回给自身
- html - 如何仅隐藏左侧滑块的溢出?
- javascript - Microsoft Graph 发送邮件但不发送附件(javascript SDK)
- go - exec.Wait() 修改后的标准输入无限期等待
- netlogo - 根据物理特征划分区域
- oracle - 如何修复 liquibase 无法在 oracle 上创建索引