Как обрабатывать избыточные запросы и повторять попытки и сортировку в MergeMap
У меня есть кусок кода, который обрабатывает concurrent
запросы к серверу, вопрос в том, что я не могу остановить mergeMap, прежде чем он делает избыточные вызовы Http.
И почему повторная попытка начинается заново? Я хотел бы продолжить с последнего индекса, который был остановлен перед повторной попыткой.
Как сохранить порядок и при этом быть параллельным?
from(observableQueries)
.pipe(
mergeMap(partialQuery => {
return this.messageService.getResults(partialQuery, true);
}, 4),
takeWhile((res: MessagesResult) => {
moreResults = res.isMoreResults;
return shouldContinue;
}),
catchError((err, caught) => {
return this.handleError(err);
})
)