Angular 4中的并行HTTP请求

前端之家收集整理的这篇文章主要介绍了Angular 4中的并行HTTP请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个简单的天气应用程序,它使用REST服务显示用户输入的任何城市中的当前天气数据.

仪表板页面显示用户指定的~5个城市的当前天气.

所以我的问题是 – 给定一个由5个城市组成的数组,对于该数组中的每个元素,为REST服务(通过Angular服务)发出调用的最佳方法是什么.

这是我最初尝试的代码摘录:

locations: string[] = ["Seattle","Woodinville","Krasnoyarsk","Stockholm","Beijing"];

...

ngOnInit() {

    this.locations.forEach(function(element) {
      this.weatherService.getWeather(element).subscribe((data) => {
        console.log(data);
      });
    });

  }

但这会产生错误
编译失败.

c:/Projects/weather-app/src/app/components/dashboard/dashboard.component.ts(19,12):’void’类型中不存在属性’weatherService’.

我意识到’forEach’在这里不起作用 – 但是在ng 4中这样做的最佳做法是什么?

谢谢.

解决方法

这将在Observables数组中映射位置数组,
当所有响应都到位时,forkJoin将发出值

Observable
.forkJoin(this.locations
  .map((element) => this.weatherService.getWeather(element))
.subscribe((data) => console.log(data));

猜你在找的Angularjs相关文章