在以下代码中,this.form.valueChanges
和this.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
}
}
答案 0 :(得分:6)
forkJoin
仅在其所有源Observable至少发出一次且它们全部完成之后发出。
这是您遇到的问题,因为valueChanges
在内部实现为
从未完成的Subject
。
例如,您可以在{ob1}}的每个“可观察的源”之前添加前缀,使其在首次发射后完成,或者实际上您正在寻找take(1)
。