rxjs - RxJs Zip 仅从发送的流中获取第一个值
问题描述
我使用RxJs Zip运算符有以下代码:
of(1, 2, 3)
.pipe(zip(of(5), of(10)))
.subscribe((a) => console.log(a));
输出将是
[1, 5, 10]
但是在 初始化的 2 和 3 值发生了什么of(1, 2, 3)
?
解决方案
内部的 observablesof(5)
只有of(10)
一个元素。静态方法zip()
只会在所有 observable 发出相应的通知时发出。
例如。
of(1, 2, 3)
.pipe(zip(of(5, 6, 7), of(10, 11, 12)))
.subscribe((a) => console.log(a));
会发出
[1, 5, 10]
[2, 6, 11]
[3, 7, 12]
我还必须在这里强调静态方法zip()
已被弃用,并且已被zip()
函数取代。使用新zip()
的等效于上述将是
import { of, zip } from 'rxjs';
zip(
of(1, 2, 3),
of(5, 6, 7),
of(10, 11, 12)
).subscribe((a) => console.log(a));
推荐阅读
- amazon-web-services - S3 公共访问替代方案
- ios - 带有 CloudKit 的 CoreData:模型迁移后,一切都重复了
- css - CSS 文件和图像未在移动浏览器 Laravel 中加载
- python - 如何使 NFC 标签只读?
- c# - 中奖表、报名表
- javascript - 如何在 Javascript 中捕获 HTTP 错误
- haskell - 在 Haskell 中使用默认实现派生实例
- sql - postgreSQL 中的 UPDATE 表
- java - Android Studio codestyles/Project.xml 配置
- reactjs - 反应功能组件 setState 不更新状态