Javascript 从公共文件调用angular Observable.subscribe()

Javascript 从公共文件调用angular Observable.subscribe(),javascript,angular,Javascript,Angular,我从两个文件(即x.ts和y.ts)调用下面的函数,但从第三方工具检查时,它显示了两个文件中的重复代码。下面是我在两个文件中调用的消息服务 this.dataSubscription = this.dataService.allmesgeObeject.subscribe(data=> { if (data) { this.x= data.x; this.y= data.y; } }); 是否有任何方法可以将subscribe函数放入一个公共文件,并将接收到的数据

我从两个文件(即x.ts和y.ts)调用下面的函数,但从第三方工具检查时,它显示了两个文件中的重复代码。下面是我在两个文件中调用的消息服务

this.dataSubscription = this.dataService.allmesgeObeject.subscribe(data=> {
  if (data) {
    this.x= data.x;
    this.y= data.y;
  }
});

是否有任何方法可以将subscribe函数放入一个公共文件,并将接收到的数据放入各自的文件中

您可以在服务中创建主题,然后从两个组件订阅它。这样,您只需调用一次API,两个组件都将使用最新数据进行更新

    export class DataService{
      public allMessages: Subject<any> = new Subject();

      constructor(
        private http: HttpClient
      ) { }

      allmesgeObeject() {
        return this.http.get(...).pipe(
          map((result) => {
             this.allMessages.next(result);
          }));
      }
}
现在,您可以在两个组件中订阅以前创建的主题

this.dataService.allMessages.subscribe(data=> {
  if (data) {
    this.x= data.x;
    this.y= data.y;
  }
});
this.dataService.allMessages.subscribe(data=> {
  if (data) {
    this.x= data.x;
    this.y= data.y;
  }
});