메인 콘텐츠로 건너뛰기
다양한 기능을 갖춘 X API 페이지네이터 이 클래스는 X API를 위한 포괄적인 페이지네이션을 지원하며, 다음과 같은 기능을 제공합니다:
  • for await...of 루프를 사용한 자동 반복
  • fetchNext()fetchPrevious()를 사용한 수동 페이지 제어
  • 페이지네이션 토큰 및 개수에 대한 메타데이터 액세스
  • 오류 처리 및 레이트 리미트 감지
  • 순방향 및 역방향 페이지네이션 모두 지원
Example
// Automatic iteration
const followers = await client.users.getFollowers('783214');
for await (const follower of followers) {
  console.log(follower.username);
}

// Manual control
const followers = await client.users.getFollowers('783214');
await followers.fetchNext();
console.log(followers.items.length); // Number of followers
console.log(followers.meta.nextToken); // 다음 페이지 토큰

// Check status
if (!followers.done) {
  await followers.fetchNext();
}

type 매개변수

NameDescription
T페이지네이션할 항목의 type

계층 구조

구현

  • AsyncIterable<T>

생성자

constructor

new Paginator<T>(fetchPage): Paginator<T> 새로운 Paginator 인스턴스를 생성합니다.

타입 매개변수

이름
T

매개변수

이름타입설명
fetchPage(token?: string) => Promise<PaginatedResponse<T>>페이지네이션 토큰이 주어지면 데이터 한 페이지를 가져오는 함수

반환값

Paginator<T>

정의된 위치

paginator.ts:90

접근자

items

get items(): T[] 가져온 모든 항목을 반환합니다.

반환값

T[]

정의 위치

paginator.ts:97

meta

get meta(): any 현재 페이지네이션 메타데이터를 반환합니다

반환

any

정의된 위치

paginator.ts:104

includes

get includes(): undefined | Record<string, any> 현재 includes 데이터를 반환합니다

반환

undefined | Record<string, any>

정의된 위치

paginator.ts:111

errors

get errors(): undefined | any[] 현재 errors를 반환합니다

반환 값

undefined | any[]

정의된 위치

paginator.ts:118

done

get done(): boolean 페이지네이션이 완료되었는지 확인합니다

반환

boolean

정의된 위치

paginator.ts:125

rateLimited

get rateLimited(): boolean 요청이 rate limit에 걸렸는지 확인합니다.

반환값

boolean

정의된 위치

paginator.ts:132

메서드

fetchNext

fetchNext(): Promise<void> 다음 페이지를 가져와 현재 인스턴스에 항목을 추가합니다. 이 메서드는 데이터의 다음 페이지를 가져와 해당 항목을 현재 paginator 인스턴스에 덧붙입니다. 또한 페이지네이션 상태와 메타데이터를 업데이트합니다.

반환값

Promise<void> 예시
const followers = await client.users.getFollowers('783214');
await followers.fetchNext(); // 첫 페이지 가져오기
console.log(followers.items.length); // 팔로워 수

if (!followers.done) {
  await followers.fetchNext(); // 두 번째 페이지 가져오기
  console.log(followers.items.length); // 페이지 전체의 총 팔로워 수
}
Throws API 요청이 실패하면

정의된 위치

paginator.ts:156
next(): Promise<Paginator<T>> 새로운 인스턴스로 다음 페이지를 가져옵니다. 이 메서드는 현재 paginator의 상태에는 영향을 주지 않고, 다음 페이지부터 시작하는 새로운 paginator 인스턴스를 생성합니다.

반환값

Promise<Paginator<T>> 다음 페이지를 위한 새 Paginator 인스턴스 Example
const followers = await client.users.getFollowers('783214');
await followers.fetchNext(); // 첫 페이지 가져오기

if (!followers.done) {
  const nextPage = await followers.next(); // 새 인스턴스로 다음 페이지 가져오기
  console.log(followers.items.length); // 여전히 첫 페이지
  console.log(nextPage.items.length); // 두 번째 페이지
}

정의된 위치

paginator.ts:211

fetchPrevious

fetchPrevious(): Promise<void> 이전 페이지를 가져옵니다 (지원되는 경우에만)

반환 값

Promise<void>

정의된 위치

paginator.ts:225
previous(): Promise<Paginator<T>> 이전 페이지를 새 인스턴스로 가져옵니다.

반환

Promise<Paginator<T>>

정의 위치

paginator.ts:260

fetchLast

fetchLast(count): Promise<void> 지정한 개수까지 추가 항목을 가져옵니다

매개변수

이름type
countnumber

반환 값

Promise<void>

정의된 위치

paginator.ts:274

reset

reset(): void 페이지네이터를 초기 상태로 되돌립니다

반환 값

void

정의된 위치

paginator.ts:288

[iterator]

[iterator](): Iterator<T, any, undefined> 가져온 모든 항목을 순회하는 이터레이터

반환

Iterator<T, any, undefined>

정의된 위치

paginator.ts:303

[asyncIterator]

[asyncIterator](): AsyncIterator<T, any, undefined> 자동으로 페이지를 가져오는 비동기 이터레이터

반환

AsyncIterator<T, any, undefined>

구현

AsyncIterable.[asyncIterator]

정의된 위치

paginator.ts:312