我必须在我的组件. ts中的ngOnInit()上订阅两次,但似乎只能订阅一次。第二次订阅被忽略。
我该怎么解决呢?
我测试了它并更改了功能,并且总是第一个订阅工作,第二个被忽略。.
它只是一个虚拟代码,所以不要因为奇怪的命名而感到惊讶。
//service.service.ts
getUser(id: string){
return this.http.get(this.url)
}
getOrder(){
return this.http.get(this.anotherUrl)
}
//component.ts
constructor(private service: Service){}
public user: object;
public order: object;
public userID: string;
ngOnInit(){
this.userID = this.route.snapshot.params['id'];
this.service.getUser(this.userID).subscribe(user => { this.user = user });
this.service.getOrder().subscribe(order => { this.order = order });
}
这将不起作用。只有第一个订阅有效,第二个订阅将被忽略。
我能做什么?怎么会是对的?
谢谢你们
目前还不清楚您在问什么,并且您的示例代码并没有真正帮助。
Subscribe接受错误处理回调作为第二个参数。由于这似乎是一个API问题,您可以像这样捕获错误:
getData() {
this.http.get(this.url).subscribe((result) => {
this.data = result;
console.log(this.data);
},
(errror: HttpErrorResponse) = > {
// Error handling here
console.log(errror);
});
}
除此之外,还可以在ngOnInit中订阅多个可观察对象。