rxjs - 当内部的任何一个发出时,发出 combine observable
问题描述
我有两个 observablesobs1
和obs2
. 我正在寻找一个在至少其中一个发出时发出的运算符。combineLatest
他们都需要至少发出一次。
import { combineLatest, forkJoin, of, zip, } from 'rxjs';
import { map } from 'rxjs/operators';
const obs1 = of();
const obs2 = of(1,2,3);
let s = null;
s = combineLatest(obs1, obs2)
.pipe(map(([a, b]) => {
console.log(a, b);
})).subscribe();
解决方案
我相信你正在寻找merge
.
const obs1$ = timer(1000).pipe(map(() => 'Observable 1 emitted'));
const obs2$ = timer(10000).pipe(map(() => 'Observable 2 emitted'));
merge(obs1$, obs2$).subscribe(console.log);
请参阅 Stackblitz https://stackblitz.com/edit/rxjs-kp8od3?file=index.ts
推荐阅读
- rust - Rust 函数中的显式“return”关键字
- performance - 长度与折叠与显式递归的性能特征
- aframe - aframe-state 组件:在删除由 bind-for 生成的实体时未调用删除函数
- beautifulsoup - 无法使用请求和 bs4 抓取数据
- javascript - Javascript,移动时按一个箭头键
- java - 这个Java代码会发生什么?或者为什么?
- c# - Firefox 对 Razor 部分标记表示这一点 - 用于非 void html 元素的自闭合语法(“/”)。忽略斜线并将其视为开始标记
- python - Errno 113 没有路由到 Python MQTT 客户端的主机
- forms - Craft docs 中的输入表单示例不起作用
- android-studio - 无法将矢量资源 (SVG) 添加到 Android Studio 项目