Перейти к основному содержимому

collectAllPages

@mineflow/client-core


@mineflow/client-core / collectAllPages

Function: collectAllPages()

function collectAllPages<T>(fetchPage: (cursor: string | null) => Promise<CursorPage<T>>, opts?: object): Promise<T[]>;

Defined in: packages/client-core/src/pagination.ts:33

Стягивает все страницы курсорного списка в один массив, последовательно передавая nextCursor следующему запросу, пока он не станет null.

maxPages — предохранитель от бесконечного цикла (по умолчанию 1000), чтобы битый nextCursor не повесил UI. Подходит для экспорта/агрегаций; для UI с листанием тяни страницы по одной.

Type Parameters

Type ParameterDescription
Tтип элемента списка.

Parameters

ParameterTypeDescription
fetchPage(cursor: string | null) => Promise<CursorPage<T>>загрузчик страницы по курсору (null — первая страница).
opts{ maxPages?: number; }{ maxPages } — потолок числа страниц (по умолчанию 1000).
opts.maxPages?number-

Returns

Promise<T[]>

плоский массив всех собранных элементов.

Example

const all = await collectAllPages((cursor) =>
unwrap(client.GET('/api/v1/eam/assets', { params: { query: { cursor: cursor ?? undefined } } })),
);