我正在尝试使用 forkJoin 执行多个 http get 请求,然后使用 Angular 8 将所有结果合并到一个简单的数组中。
问题是我最终得到的是一个数组数组...而不是一个字符串数组
我的代码如下。所有端点都返回字符串列表。
autoCompleteValues: any;
ngOnInit() {
let res1 = this.dataMessageService.getFoo1();
let res2 = this.dataMessageService.getFoo2();
let res3 = this.dataMessageService.getFoo3();
let res4 = this.dataMessageService.getFoo4();
let res5 = this.dataMessageService.getFoo5();
forkJoin([res1, res2, res3, res4, res5]).subscribe(data => {
this.autoCompleteValues = data;
console.log(this.autoCompleteValues);
});
}
我做错了什么?如何将所有结果合并到一个大数组中?
最佳答案
您的代码是正确的,因为这是 forkjoin 的预期行为 你只需要稍微映射一下
forkJoin([res1, res2, res3, res4, res5])
.pipe(map(data => data.reduce((result,arr)=>[...result,...arr],[])))
.subscribe(data =>{
this.autoCompleteValues = data;
console.log(this.autoCompleteValues);
});
关于Angular 8发出多个http请求并合并所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58603183/