在角度2我使用多种服务,但我无法从第一个Api获得第二api订阅功能的数据,所以请建议我合适的答案。
答案 0 :(得分:5)
它就像2个异步HTTP请求一样简单。当第一个请求触发时,在获得响应之前它会触发第二个请求。
在Angular中,它以同样的方式发生。为避免这种情况,角度介绍了ForkJoin:
fork-join用于同时创建多个HTTP请求,在收到所有HTTP请求后,它会调用最终的订阅方法。
Observable.forkJoin(
this.http.post(glob.BASE_API_URL_HOTEL + "hotel/getRoomType?hotelCode=" + this.hotel,{}).map(res => res.json()),
this.http.get(glob.BASE_API_URL_HOTEL + "hotel/getBedType").map(res => res.json())
).subscribe((data)=>{
this.roomType = data[0].data;
this.getBedType = data[1].data;
}
这里,两个请求同时启动,在订阅回调中,您将获得所有响应的数组。