angular - 如何将 Observable 和 Subject 组合成 combineLatest?
问题描述
我是 combineLatest 的新手,但我正在尝试组合一个具有:
0: Observable {_isScalar: false, _subscribe: ƒ}
1: Observable {_isScalar: false, _subscribe: ƒ}
2: Observable {_isScalar: false, _subscribe: ƒ}
3: Subject {_isScalar: false, observers: Array(0), closed: false, isStopped: false, hasError: false, …}
4: Subject {_isScalar: false, observers: Array(0), closed: false, isStopped: false, hasError: false, …}
5: Observable {_isScalar: false, _subscribe: ƒ}
6: Observable {_isScalar: false, _subscribe: ƒ}
但由于某种原因
combineLatest(validations).subscribe(result => {console.log("it works"});
不发火。我是这个功能的新手,没有错误消息让我无法理解哪里出了问题。如果我删除项目 3-4 它会触发。但我需要它们。请帮忙。谢谢你。
解决方案
Observable
如果每个内部都至少有一个值,则 CombineLatest 订阅有效。似乎当你订阅时,你的一些validations
没有价值。
您可以为其添加起始值,只需添加.pipe(startsWith(null))
到每个 Observable/Subject。
merge(validations)
如果方便,您可以使用另一种方法。
推荐阅读
- php - 识别哪个插件抛出此错误的最有效方法 - “检测到活动的 PHP 会话”
- database - 如何将主键和外键添加到 BigQuery?
- java - 带可变参数的功能接口
- node.js - 使用 Sequelize 提取关联值
- xml - 显示 XML Parse Groovy 列表结果的内容
- java - 在 Java 中使用 BouncyCastle 进行 PGP 加密
- mongodb - 如何在 mongodb 中返回所有不包含特定值的结果
- r - 如何使表达式进入ggplot中轴标签的多行?
- c++ - 如何在 C++ 中将浮点类型舍入为两位或更多小数?
- postgresql - Postgres TIMESTAMP 索引和查询性能