当我发出两个并行的http请求时,数据无法获取

raj*_*mar 2 fork-join typescript angular

在角度2我使用多个服务,但我无法从第二个API的订阅功能获得第一个Api的数据,所以请建议我合适的答案.

muk*_*tel 5

它就像2个异步HTTP请求一样简单.当第一个请求触发时,在获得响应之前它会触发第二个请求.

在Angular中,它以相同的方式发生.为避免这种情况,角度介绍了ForkJoin:

在此输入图像描述

fork-join用于同时创建多个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;
}
Run Code Online (Sandbox Code Playgroud)

这里,两个请求同时启动,在订阅回调中,您将获得所有响应的数组.