rxjs - 在不应用订阅的情况下更新 observable 的值
问题描述
Observable
我使用管道订阅 anpairwise
以获得以前的和新的值。
但有时我想告诉Observable
该值已在未应用该subscribe
函数的情况下更新。它将确保previousValue
总是更新但不总是应用订阅功能。
// Listen to FomControl -> update value variable.
this.valueChangesSubscription = this.control.valueChanges
.pipe(startWith(this.defaultValue), pairwise())
.subscribe(async ([previousValue, newValue]) => {
// Do something
});
我更新了的值,formControl
有时会发出事件,有时不会:
this.control.setValue(formattedValue, { emitEvent });
但我希望即使没有发出事件,previousValue
该subscribe
函数也将是真实的previousValue
,而不仅仅是最新发出的。
谢谢你。
解决方案
可以试试filter
算子过滤订阅的结果
private myBooleanValue = false;
// Listen to FomControl -> update value variable.
this.valueChangesSubscription = this.control.valueChanges
.pipe(
startWith(this.defaultValue),
pairwise(),
// It will never emit a value to subscribe since its false
filter(([previousValue, newValue]) => this.myBooleanValue),
)
.subscribe(async ([previousValue, newValue]) => {
// Do something
});
推荐阅读
- python - 在 if 语句中检测到 Python 语法错误
- reactjs - useMutation 错误解析为未处理的拒绝(错误)页面
- font-face - 为什么这个 @import 规则对这个 Web 组件没有任何影响?
- sql - 为什么我在 Access 中的 SQL 语句中将“CF”添加到搜索字符串的末尾时出现“数据类型不匹配”错误?
- ruby-on-rails - 检查 ruby 类是否在特定模块中
- javascript - JavaScript 按钮在某一部分不起作用
- python - 基于列和行输出到 bool 的 Pandas 条件(替换“for”语句)
- amazon-web-services - 将基于 API 的服务发现返回到 AWS Cloud Map 的 Ip 顺序
- c - 如何在 OS 编程中从 VGA 切换到 SVGA
- powershell - 导入模块后如何使“未批准的动词”警告消息静音?