javascript - 将多个 api 链接传递到服务中并将所有结果放入数组中

标签 javascript angular

是否可以使用数组中的多个链接进行 API get 调用,并将其结果收集到对象数组中。

假设sampleArr是一个链接数组

 sampleArr = [
 "https://api.abc.com/users/xut",
 "https://api.abc.com/users/yre",
 "https://api.abc.com/users/wer",
 "https://api.abc.com/users/cdw"
]

我正在使用此 UserService 进行 API 调用

this.userService.getUser(sampleArr)
    .subscribe(data => console.log(data)) // should log an array of the results

用户服务

getUser(url: string): Observable<any> {
  return this.http.get<User[]>(url)
}

最佳答案

您可以尝试使用forkJoincombineLatest运算符。

试试这个:

import { combineLatest } from 'rxjs';

combineLatest(
  ...sampleArr.map(url => this.userService.getUser(url)), 
// this.userService.getUser("https://api.abc.com/users/xut"), this.userService.getUser("https://api.abc.com/users/yre"),....
).subscribe(arrayOfResults => {
   console.log(arrayOfResults);
});

关于javascript - 将多个 api 链接传递到服务中并将所有结果放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60461478/

相关文章:

javascript - 可观察的添加延迟 - Angular 2

javascript - div 不滚动时获取回调

angular - 将 [(ngModel)] 添加到单选按钮组后,默认的 [checked] 不再有效

android - Ionic build cannot find module 错误。如何导入安卓插件?

angular - typescript 如何在没有引用的情况下复制对象

java - Javascript <-> Java AES

javascript - 使用 JavaScript 和 CSS 按类为 HTML 标记着色

javascript - 使用 Nightwatchjs 检测视频播放

javascript - 在 Javascript 中关闭模态框

javascript - Node Redis 命令不会运行?