Как обрабатывать избыточные запросы и повторять попытки и сортировку в 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);
                })
            )

0 ответов

Другие вопросы по тегам