作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在下面的代码中,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
}
}
最佳答案
forkJoin
仅在其所有源 Observable 至少发出一次且全部完成后才发出。
这就是您遇到的问题,因为 valueChanges
在内部实现为一个永远不会完成的 Subject
。
例如,您可以在每个源 Observable 前加上 take(1)
,使其在第一次发射后完成,或者您实际上正在寻找 combineLatest(...)。管道(取(1))
。
关于angular - forkJoin() 未发出调用而其参与者正在发出罚款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57201013/
这是在 Ruby On Rails 3 测试环境中完成的,这是一个与生产环境相同的 MySQL 的 phusion 乘客。我使用了本教程:http://railscasts.com/episodes/
我是一名优秀的程序员,十分优秀!