rxjs - Rxjs:等待外部可观察,将值传递给内部并在订阅中返回两个解析值
问题描述
我已经尝试了一些运算符来实现一个用例。我想执行一个 HTTP 请求,当这个外部 observable 被解析时,我想用它的值来执行另一个,然后将两个解析的值结合到一个外部 observable 和内部 observable 的 observable 中。
我不确定我可以如何以及可以使用哪些运算符或组合。
我已经尝试过以下方法。
import { forkJoin, interval, of } from "rxjs";
import { map, mergeMap, take, tap } from "rxjs/operators";
of('outer')
.pipe(
map(
(v) => {
console.log(`${v}===> inner`);
return forkJoin([
of(`${v}===> inner`),
of(v)
])
}
)
,
tap(
(v) => {
console.log('tap', v);
}
)
)
.subscribe(
(v) => {
console.log('sub', v)
}
)
解决方案
像这样的东西应该做的工作
of('outer').pipe(
switchMap(outerResult => of('inner').pipe(
tap(innerResult => console.log('outer', outerResult, 'inner', innerResult),
map(innerResult => ({
inner: innerResult,
outer: outerResult
})
)
)))).subscribe(
result => {
console.log(result);
// the result should be an object with `inner` and `outer` keys
}
)
- 一旦外部解决,然后您切换到内部
- 因为您仍在 switchMap 中,所以您可以在点击运算符中访问 outerResult
推荐阅读
- javascript - 使用 Regex JS 删除字符串中的重复单词
- android - 使用 Mockito 测试最小的实时数据视图模型
- java - Java将差异数组转换为变量
- python - Virtutalenv 命令“python setup.py egg_info”失败,错误代码为 1
- javascript - 尽管 API 已激活,但在尝试使用嵌入地图 API 时出现 ApiNotActivatedMapError
- java - Spring Boot 仅在 IDE 中工作
- javascript - 从特殊字符前后的字符串中获取值 - Jquery
- r - 将 XLS 转换为 CSV - R(试用 Rio 包)
- java - LocalDateTime 和 SQL Server JDBC 4.2 驱动程序
- postgresql - 为什么不同的查询值会产生不同的索引算法?