rxjs - Rxjs 类似 zip 的运算符,仅在 observable 以特定顺序触发时返回
问题描述
假设我有两个 Observable A 和 B,我想将它们组合起来以产生这种行为:订阅组合仅在 A 被触发且 B 已经被触发时才返回。它与 zip 不同,因为如果 A 已经被解雇然后 B 被解雇,我不希望有任何回报。换句话说:忽略A直到B触发然后返回下一个A,然后忽略任何其他A直到B触发......等等
解决方案
我相信你需要withLatestFrom
运营商:
import { withLatestFrom, map } from 'rxjs/operators';
import { interval } from 'rxjs';
const obsA = interval(2000);
const obsB = interval(1000);
const resultingObs = obsB.pipe(
withLatestFrom(obsA),
map(([bValue, aValue]) => {
return aValue
})
);
// This should emit values from obsA only when obsB has been fired.
const subscribe = resultingObs .subscribe(val => console.log(val));
推荐阅读
- c - 如何使 TCP 服务器以并行模式运行以发送而不等待回复?
- dask - 使用 to_parquet 函数创建的 dask parquet 文件结构
- python - 在 tkinter 帧之间共享变量,使用共享数据方法
- xamarin.forms - 分享在IOS上不能正常工作或显示弹出分享窗口很慢
- mysql - 按日期范围查询 MySql
- c++ - 在 C++ 中,我可以在定义自己的复制构造函数后跳过定义赋值运算符吗?
- spring - 'spring.sleuth.integration.websockets.enable=false' 不会禁用跟踪 websocket
- android-studio - Android Studio 中文档注释的键盘快捷键
- android - 通过 aaptOptions 从“_next”资产文件夹中复制所有内容
- c++ - 热转换 std::__cxx11::string 为 std::string