我有一个服务,可以像这样使用forkjoin向服务器发出4个http请求
getData():Observable<any[]>{
const response1=this.http.get(URL+'/1')
const response2=this.http.get(URL+'/2')
const response3=this.http.get(URL+'/3')
const response4=this.http.get(URL+'/4')
console.log("recibido")
this.data= forkJoin([response1,response2,response3,response4])
return this.data
}
因此,我想将此结果Observable数组共享给2个必须以不同方式使用forkJoin结果的组件。 显然,两次调用该函数不起作用,因为Angular不允许我同时显式发出两个HTTP请求
我以前使用@Output Decorator发送数据
data: dataChart
@Output() change: EventEmitter<dataChart> = new EventEmitter()
toggleData(podata: dataChart) {
console.log('do toggle')
this.data = podata;
//this.isOpen = !this.isOpen;
this.change.emit(this.data);
console.log(this.data)
}
我在组件上调用toggleData()来设置变量this.data,然后我调用了
this.service.change.subscribe(data=>{
//Handle the data
})
在4个组件中能够处理来自第一个组件的数据。
请注意,所有组件都是兄弟姐妹
是否可以用forkJoin做到这一点? 有没有其他方法可以从http服务器获取数据并将其结果用于各种组件?