您可以使用rxjs中的mergeMap
操作符来解决这个问题。下面是一个使用Angular的示例代码:
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { mergeMap } from 'rxjs/operators';
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent implements OnInit {
dataArray: any[] = [];
constructor(private http: HttpClient) { }
ngOnInit() {
this.getData().subscribe(
data => {
this.dataArray.push(data);
},
error => {
console.log(error);
}
);
}
getData() {
return this.http.get('https://example.com/api/data').pipe(
mergeMap((response: any) => {
return response.map(data => {
return { id: data.id, name: data.name }; // 根据实际数据结构修改
});
})
);
}
}
在上面的示例中,我们使用了mergeMap
操作符来将HTTP响应转换为一个数组,并将其推送到dataArray
属性中。注意在getData
方法中,我们使用了map
函数来对响应数据进行转换,以适应我们的数据结构。
请注意,您需要根据实际的数据结构修改getData
方法中的map
函数的转换逻辑。