我正试图在我的Angular服务中同时进行多个HTTP调用,我想将响应组合到一个对象中。我如何使用RxJS做到这一点?
import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class DataService { constructor(private http: HttpClient) {} getData1(): Observable<any> { return this.http.get('https://api.example.com/data1'); } getData2(): Observable<any> { return this.http.get('https://api.example.com/data2'); } }
通过使用分叉连接
getCombinedData(): Observable<any> { return forkJoin([this.getData1(), this.getData2()]); }
combineData() { this.dataService.getCombinedData().subscribe((responses) => { const [data1, data2] = responses; });
通过使用concatMap:使用concatMap进行连续的HTTP调用并组合它们的结果。当您希望确保一个接一个地进行呼叫时,这非常有用。