rxjs - 可观察的 RxJS 动态源
问题描述
我想创建一个包含许多 observable 的 Observable(合并它们)。这可以通过merge(...arrayOfObservables)
. 问题是有时这个数组会被改变,并且 observable 也应该订阅新的 observables。
解决方案
您可以将新的 Observable 推送到一个数组,然后发出该数组并使用 订阅它们switchMap
。
import { of, merge, BehaviorSubject } from 'rxjs';
import { switchMap } from 'rxjs/operators';
const s = new BehaviorSubject([of(1), of(2), of(3)]);
s.pipe(
switchMap(array => merge(...array)),
).subscribe(x => console.log(x));
s.next([...s.getValue(), of(4)]);
推荐阅读
- python - 文件读取嵌套循环不会循环多次
- rest - 使用 Restbird 对使用授权代码授予类型 Oauth 2.0 保护的 API 进行自动化测试
- python - Python:如何使 Pillow 和 Tkinter 兼容?
- python - 如何从 anacoda 中删除 python 模块
- python - 类在 SQLalchemy 中没有名为“x”的映射列
- actions-on-google - 在 Google Home Mini 上测试 Google Action
- weather - 返回不同语言的雅虎天气数据
- html - 如何让引导下拉菜单在其父组件之外可见?角
- javascript - 用于自动幻灯片的 Javascript 代码在单独的 .js 文件中不起作用,但在 html 中起作用
- json - Apache Kafka 生产者 - 消费者 Web 服务