我如何防止CombineLatest第一次触发

我有一个带有一堆字段的表单(使用reactForm)。 当字段A或B中的值更改时,我要执行doStuffWithAnB。

所以CombineLatest似乎正是我所需要的。

combineLatest(A.valueChanges,B.valueChanges).subscribe(doStuffWithAnB)

现在,如果用户进入表单,并且仅触摸B(或A),我想执行我的功能,> startWith

combineLatest(A.valueChanges.pipe(startWith(someDefaultvalue),B.valueChanges.pipe(startWith(someOtherDefaultvalue)).subscribe(doStuffWithAnB)

但是现在因为我的2个流都具有startWith,所以从头开始触发doStuffWithAnB,但是我不想执行doStuffWithAnB,直到其中一个字段被修改

我如何以一种干净的方式实现这一目标?

sh_luoqiang 回答:我如何防止CombineLatest第一次触发

为什么不选择merge呢?它将采用其中任一结果!我们也不需要startsWith,因为它最初不应该执行!

发件人:

 combineLatest(A.valueChanges.pipe(startWith(someDefaultValue),B.valueChanges.pipe(startWith(someOtherDefaultValue)).subscribe(doStuffWithAnB)

收件人:

merge(A.valueChanges,B.valueChanges).subscribe(doStuffWithAnB)
本文链接:https://www.f2er.com/2581561.html

大家都在问