Angular 订阅来自不同组件的服务响应

Angular 订阅来自不同组件的服务响应,angular,Angular,我有一个上载组件,它使用upload.service.ts在angular中的上载方法将文件上载到服务器。服务器在该方法中返回一个JSON响应。我还有另一个对JSON响应感兴趣的组件。但是另一个组件如何订阅JSON响应。如果此服务是单例服务,那么您可以设置一个可观察对象来保存响应对象 upload.service.ts @Injectable({providedIn:'root'}) 导出类上载服务{ 私有uploadResponseSource=新主题(); public uploadResp

我有一个上载组件,它使用upload.service.ts在angular中的上载方法将文件上载到服务器。服务器在该方法中返回一个JSON响应。我还有另一个对JSON响应感兴趣的组件。但是另一个组件如何订阅JSON响应。

如果此服务是单例服务,那么您可以设置一个可观察对象来保存响应对象

upload.service.ts

@Injectable({providedIn:'root'})
导出类上载服务{
私有uploadResponseSource=新主题();
public uploadResponse$=this.uploadResponseSource.asObservable();
上传(){
返回此.http.post(…).pipe(
点击(响应=>this.uploadResponseSource.next(响应))
);
}
}
然后,您可以从组件订阅此可观察对象以接收对象响应

某些成分

导出类SomeComponent实现OnInit{
上传响应:任何;
恩戈尼尼特(){
此.uploadService.uploadResponse$.subscribe(
response=>{this.uploadResponse=response}
);
}
}

如果此服务是单例服务,则可以设置一个可观察对象来保存响应对象

upload.service.ts

@Injectable({providedIn:'root'})
导出类上载服务{
私有uploadResponseSource=新主题();
public uploadResponse$=this.uploadResponseSource.asObservable();
上传(){
返回此.http.post(…).pipe(
点击(响应=>this.uploadResponseSource.next(响应))
);
}
}
然后,您可以从组件订阅此可观察对象以接收对象响应

某些成分

导出类SomeComponent实现OnInit{
上传响应:任何;
恩戈尼尼特(){
此.uploadService.uploadResponse$.subscribe(
response=>{this.uploadResponse=response}
);
}
}