изменить параллельный наблюдаемый отклик на последовательный - PullRequest
0 голосов
/ 05 августа 2020

У меня есть этот метод как унаследованный код, который обрабатывает и выполняет несколько вызовов api http и возвращает сглаженные наблюдаемые объекты, и весь процесс параллелен из-за 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);
}

1 Ответ

1 голос
/ 05 августа 2020

Коротко и понятно:

import {concat} from "rxjs";

...

return concat(...observables);

Из документации :

Создает выходной объект Observable, который последовательно генерирует все значения из данного Observable, а затем перемещается к следующему.

...