Rx JS создание Observables в цикле - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу создать Observables в al oop и ждать, пока все они будут закончены.

for (let slaveslot of this.fromBusDeletedSlaveslots) {
                    this.patchSlave({
                        Id: slaveslot.Id,
                        BusOrder: null,
                        BusId: null
                    });
                }

Функция patchSlave () возвращает Observable.

patchSlave(slaveslot: any): Observable<any> {
    return this.httpClient.patch(environment.apiBaseUrl + `/odata/SlaveSlots(${slaveslot.Id})`, slaveslot);
}

Я не знаю лучший способ решить эту проблему. Я думаю, что я должен опустить l oop a заменить на что-то из Rx js?

1 Ответ

1 голос
/ 17 апреля 2020

Используйте здесь оператор Rx JS forkJoin.

Вы можете передать массив наблюдаемых, и он даст окончательное значение, когда все наблюдаемые будут завершены.

let array = [];
for (let slaveslot of this.fromBusDeletedSlaveslots) {
               array.push ( this.patchSlave({
                        Id: slaveslot.Id,
                        BusOrder: null,
                        BusId: null
                    }));
                }

forkJoin(array).subscribe(results => {console.log(results)});

Подробнее см. Здесь: Rx JS forkJoin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...