【发布时间】:2019-10-25 20:06:13
【问题描述】:
我必须在 component.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 });
}
这行不通。只有第一个订阅有效,第二个将被忽略。
我能做些什么呢?怎么会是对的?
谢谢
【问题讨论】:
-
您可以订阅任意数量的内容。您是如何得出第二次订阅被忽略的结论的?那些是不相关的订阅,应该没有问题
-
如果我尝试控制台日志它什么都不会出现..
-
嗯,你看到网络标签中的http调用了吗?
-
是的,第二次退出状态为 500(内部服务器错误),但调用本身是正确的并导致数据
-
那么这似乎是您的 API 中的一个问题 :)
标签: typescript angular7 subscription ngoninit