加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular 4中的并行HTTP请求

发布时间:2020-12-17 17:03:31 所属栏目:安全 来源:网络整理
导读:我正在构建一个简单的天气应用程序,它使用REST服务显示用户输入的任何城市中的当前天气数据. 仪表板页面应显示用户指定的~5个城市的当前天气. 所以我的问题是 – 给定一个由5个城市组成的数组,对于该数组中的每个元素,为REST服务(通过Angular服务)发出调用的
我正在构建一个简单的天气应用程序,它使用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));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读