Я написал этот эффект для обработки одного вызова за раз:
@Effect()
indexCollectiveDocuments$ = this.actions$.pipe(
ofType<IndexCollectiveDocuments>(CollectiveIndexingActionTypes.IndexCollectiveDocuments),
mergeMapTo(this.store.select(getIndexingRequest)),
exhaustMap((request: any[], index: number) => {
return zip(...request.map(item => {
this.currentItem = item;
return this.indexingService.indexDocuments(item).pipe(
map((response: any[]) => new IndexCollectiveDocumentsSuccess(response)),
catchError(error => of(new IndexCollectiveDocumentsFailure({ error: error, item: this.currentItem })))
)
}))
})
);
Он отправляет действия «Успех» и «Сбой» в соответствии с результатом запроса.
Но когда я передаю эффект нескольким элементам (полезная нагрузка которых равна getIndexingRequest ) для отправки запросов один за другим, действия «Успех» и «Сбой» соответственно не отправляются, отменяются при сбое одного из них.
Как мне изменить его так, чтобы он работал с несколькими запросами, а не с одним?
РЕДАКТИРОВАТЬ: я вижу все запросы и их результаты на вкладке сети. Но отправляется только одно действие.