angular - 当我触发两个并行 http 请求时未获取数据

标签 angular typescript fork-join

在 Angular 2 中,我正在使用多个服务,但我无法在第二个 API 的订阅功能中从第一个 Api 获取数据,因此请建议我合适的答案。

最佳答案

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

在 Angular 中,情况也是如此。为了避免这种情况,Angular 引入了 ForkJoin:

enter image description here

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;
}

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

关于angular - 当我触发两个并行 http 请求时未获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48760083/

相关文章:

javascript - 如何更改任何图表水平仪表中的标记标签?

angular - 错误 TS2307 : Cannot find module 'moment' in moment-date-adapter. d.ts

javascript - Handlebars /功能最终处于不可能的状态

java - JDBC连接并发充足性

java - 这个 forkjoinreuse 和 forkjoindeeprecursive 是什么意思?

javascript - 如何将字符串添加到变量

javascript - Angular 2没有提供者错误

typescript - 为什么 typescript 认为我的属性(property)在我投入 promise 捕获 block 后可能无效?

typescript - 转到定义在 VS Code 版本 1.47.2 中不起作用

Java 的 Fork/Join vs ExecutorService - 什么时候使用?