itd-api / Paginator
Class: Paginator<T>
Defined in: core/pagination.ts:231
Перебор страниц списка.
Скрывает различия трёх схем пагинации: перебор элементов, страниц и сбор в массив выглядят одинаково независимо от эндпоинта.
Одноразовый. Позиция хранится внутри, поэтому повторный перебор того же объекта ничего не вернёт: он продолжится с места, где закончился прошлый. Нужен второй проход — возьмите новый перебор у того же метода ресурса.
Examples
Перебор элементов
for await (const post of itd.posts.iterate({ tab: 'following' })) {
console.log(post.content);
}Первые сто элементов
const posts = await itd.posts.iterate({ tab: 'popular' }).collect(100);Постранично
for await (const page of itd.users.followers('nowkie').pages()) {
console.log(page.items.length, 'из', page.total);
}Type Parameters
T
T
Implements
AsyncIterable<T>
Constructors
Constructor
new Paginator<T>(options): Paginator<T>;Defined in: core/pagination.ts:239
Parameters
options
Returns
Paginator<T>
Methods
[asyncIterator]()
asyncIterator: AsyncGenerator<T, void, undefined>;Defined in: core/pagination.ts:290
Перебирает элементы всех страниц подряд.
Returns
AsyncGenerator<T, void, undefined>
Implementation of
AsyncIterable.[asyncIterator]collect()
collect(max?): Promise<T[]>;Defined in: core/pagination.ts:304
Собирает элементы в массив.
Parameters
max?
number
сколько элементов достаточно; без него перебираются все страницы
Returns
Promise<T[]>
next()
next(): Promise<Page<T> | null>;Defined in: core/pagination.ts:259
Загружает следующую страницу.
Returns
Promise<Page<T> | null>
страница либо null, если перебор закончен
pages()
pages(): AsyncGenerator<Page<T>, void, undefined>;Defined in: core/pagination.ts:281
Перебирает страницы целиком.
Полезно, когда нужны сведения о самой странице — например total.
Returns
AsyncGenerator<Page<T>, void, undefined>