Я попытался создать эпический RxJS, который будет в основном выполнять цикл по конечной точке API и объединять результаты в один большой массив, потому что API допускает максимум 100 элементов в качестве ответа. Я хочу собрать все элементы и в идеале отсортировать их до Я поставил его как полезную нагрузку для редукса
const fetchData = action$ =>
action$.pipe(
ofType(FETCH_DATA),
mergeMap(action =>
ajax(`localhost:8001/data?page=${action.payload.pages}&per_page=${MAX_PER_PAGE}`).pipe(
map(datas => fetchDataSuccess(datas)),
retry(2),
catchError(error => of(fetchDataFailed()))
)
)
);
этот фрагмент работает, и я сделал обход в своем компоненте, где я в основном выполняю итерацию по номерам страниц и вызываю эти данные выборки для каждого номера страницы, мне это не нравится, но я не нашел, что было бы лучше сделать это в самой эпопее.
Попытался также выполнить дополнительное действие и выполнить сортировку в редукторе один раз, когда все страницы загружены, но я почти уверен, что RxJS более мощный и есть способ сделать это непосредственно в эпопее.
На этом этапе я в значительной степени идеал, кто-нибудь видит лучший способ сделать несколько Ajax-пакетов и объединить все результаты в один большой массив?