我有此方法作为遗留代码,可以处理并执行多个api http调用并返回平整的observables,并且由于forkJoin,所有过程都是并行的,并且由于某些原因,我想将过程更改为顺序的,我已经阅读了一些文章,其中大多数都建议使用concatMap,但实际上我不知道在代码中使用concatMap的正确方法,而且我不知道其他任何方法。
这是方法:
handleDataPost(list: Array<{ url: string, data: any }>): Observable<any> {
console.log('start data posting');
const observables: Array<Observable<any>> = [];
list.forEach(eachRequestObject => {
observables.push(this.apiService.postData(eachRequestObject.url, JSON.stringify(eachRequestObject.data)));
});
console.log('list of observables', observables);
return forkJoin(observables);
}
答案 0 :(得分:1)
又甜又甜:
import {concat} from "rxjs";
...
return concat(...observables);
创建一个输出Observable,该输出依次从给定的Observable发出所有值,然后移至下一个。