gpt4 book ai didi

angular - forkJoin() 未发出调用而其参与者正在发出罚款

转载 作者:行者123 更新时间:2023-12-01 15:54:52 26 4
gpt4 key购买 nike

stackblitz

在下面的代码中,this.form.valueChangesthis.form.get('name').valueChanges 发射正常。但是 forkJoin 这些都不起作用。有人可以请教吗?

export class AppComponent  {
name = 'Angular';
form = this.formBuilder.group({
name:'test'
})
constructor(private formBuilder: FormBuilder){

}

ngOnInit(){

forkJoin(this.form.valueChanges, this.form.get('name').valueChanges)
.subscribe(x=>alert(x))//NOT working

this.form.valueChanges.subscribe((x)=>alert(JSON.stringify(x)));//fine
this.form.get('name').valueChanges.subscribe((x)=>alert(x))//fine
}
}

最佳答案

forkJoin 仅在其所有源 Observable 至少发出一次且全部完成后才发出。

这就是您遇到的问题,因为 valueChanges 在内部实现为一个永远不会完成的 Subject

例如,您可以在每个源 Observable 前加上 take(1),使其在第一次发射后完成,或者您实际上正在寻找 combineLatest(...)。管道(取(1))

关于angular - forkJoin() 未发出调用而其参与者正在发出罚款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57201013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com