如何在表单无效时过滤(终止)RxJS Observable?
解决表单无效时阻止Observable执行的问题
你的代码逻辑刚好写反了,当前写法是仅在表单无效时才触发订阅内的逻辑,要实现「表单无效时阻止Observable继续执行」(即仅在表单有效时才走后续逻辑),需要调整filter操作符的判断条件,同时修正表单状态的获取方式:
this.subscription2 = this.myForm.valueChanges.pipe( // 直接从表单实例获取有效性状态,valueChanges发射的是表单值而非表单实例 map(() => this.myForm.invalid), // 过滤掉表单无效的情况,仅保留有效时的数据流 filter(invalid => !invalid), debounceTime(1000) ).subscribe(() => { // 此处逻辑只会在表单有效时执行 });
内容的提问来源于stack exchange,提问作者Andrew Howard
相关产品推荐
相关产品推荐

