> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Paginator

> X API TypeScript SDK의 Paginator 클래스에 대한 레퍼런스. 비동기 이터레이터 및 커서 헬퍼로 페이지네이션된 응답 결과를 반복하세요.

풍부한 기능을 가진 X API paginator

이 클래스는 X API에 대한 포괄적인 페이지네이션 지원을 제공하며 다음을 포함합니다:

* `for await...of` 루프를 사용한 자동 반복
* `fetchNext()` 및 `fetchPrevious()`를 사용한 수동 페이지 제어
* 페이지네이션 토큰 및 개수를 위한 메타데이터 액세스
* 오류 처리 및 속도 제한 감지
* 정방향 및 역방향 페이지네이션 지원

**`예시`**

```typescript title="Example" lines wrap icon="square-js" theme={null}
// 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); // Next page token

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

## 타입 매개변수

| 이름  | 설명              |
| :-- | :-------------- |
| `T` | 페이지네이션되는 항목의 타입 |

## 계층 구조

* **`Paginator`**

  ↳ [`PostPaginator`](/xdks/typescript/reference/classes/PostPaginator)

  ↳ [`UserPaginator`](/xdks/typescript/reference/classes/UserPaginator)

  ↳ [`EventPaginator`](/xdks/typescript/reference/classes/EventPaginator)

## 구현

* `AsyncIterable`\<`T`>

## 생성자

### constructor

• **new Paginator**\<`T`>(`fetchPage`): [`Paginator`](/xdks/typescript/reference/classes/Paginator)\<`T`>

새 paginator 인스턴스를 생성합니다

#### 타입 매개변수

| 이름  |
| :-- |
| `T` |

#### 매개변수

| 이름          | 타입                                                                                                                       | 설명                                 |
| :---------- | :----------------------------------------------------------------------------------------------------------------------- | :--------------------------------- |
| `fetchPage` | (`token?`: `string`) => `Promise`\<[`PaginatedResponse`](/xdks/typescript/reference/interfaces/PaginatedResponse)\<`T`>> | 페이지네이션 토큰이 주어졌을 때 데이터 페이지를 가져오는 함수 |

#### 반환값

[`Paginator`](/xdks/typescript/reference/classes/Paginator)\<`T`>

#### 정의 위치

[paginator.ts:90](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L90)

## 접근자

### items

• `get` **items**(): `T`\[]

가져온 모든 항목 얻기

#### 반환값

`T`\[]

#### 정의 위치

[paginator.ts:97](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L97)

***

### meta

• `get` **meta**(): `any`

현재 페이지네이션 메타데이터 가져오기

#### 반환값

`any`

#### 정의 위치

[paginator.ts:104](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L104)

***

### includes

• `get` **includes**(): `undefined` | `Record`\<`string`, `any`>

현재 includes 데이터 가져오기

#### 반환값

`undefined` | `Record`\<`string`, `any`>

#### 정의 위치

[paginator.ts:111](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L111)

***

### errors

• `get` **errors**(): `undefined` | `any`\[]

현재 오류 가져오기

#### 반환값

`undefined` | `any`\[]

#### 정의 위치

[paginator.ts:118](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L118)

***

### done

• `get` **done**(): `boolean`

페이지네이션이 완료되었는지 확인

#### 반환값

`boolean`

#### 정의 위치

[paginator.ts:125](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L125)

***

### rateLimited

• `get` **rateLimited**(): `boolean`

속도 제한이 발생했는지 확인

#### 반환값

`boolean`

#### 정의 위치

[paginator.ts:132](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L132)

## 메서드

### fetchNext

▸ **fetchNext**(): `Promise`\<`void`>

다음 페이지를 가져와 현재 인스턴스에 항목 추가

이 메서드는 다음 데이터 페이지를 가져와 현재 paginator 인스턴스에 항목을
추가합니다. 페이지네이션 상태와 메타데이터를 업데이트합니다.

#### 반환값

`Promise`\<`void`>

**`예시`**

```typescript theme={null}
const followers = await client.users.getFollowers('783214');
await followers.fetchNext(); // Fetch first page
console.log(followers.items.length); // Number of followers

if (!followers.done) {
  await followers.fetchNext(); // Fetch second page
  console.log(followers.items.length); // Total followers across pages
}
```

**`Throws`**

API 요청이 실패한 경우

#### 정의 위치

[paginator.ts:156](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L156)

***

### next

▸ **next**(): `Promise`\<[`Paginator`](/xdks/typescript/reference/classes/Paginator)\<`T`>>

다음 페이지를 새 인스턴스로 가져오기

이 메서드는 현재 paginator의 상태에 영향을 주지 않고 다음 페이지부터
시작하는 새 paginator 인스턴스를 생성합니다.

#### 반환값

`Promise`\<[`Paginator`](/xdks/typescript/reference/classes/Paginator)\<`T`>>

다음 페이지에 대한 새 paginator 인스턴스

**`예시`**

```typescript theme={null}
const followers = await client.users.getFollowers('783214');
await followers.fetchNext(); // Fetch first page

if (!followers.done) {
  const nextPage = await followers.next(); // Get next page as new instance
  console.log(followers.items.length); // Still first page
  console.log(nextPage.items.length); // Second page
}
```

#### 정의 위치

[paginator.ts:211](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L211)

***

### fetchPrevious

▸ **fetchPrevious**(): `Promise`\<`void`>

이전 페이지 가져오기 (지원되는 경우)

#### 반환값

`Promise`\<`void`>

#### 정의 위치

[paginator.ts:225](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L225)

***

### previous

▸ **previous**(): `Promise`\<[`Paginator`](/xdks/typescript/reference/classes/Paginator)\<`T`>>

이전 페이지를 새 인스턴스로 가져오기

#### 반환값

`Promise`\<[`Paginator`](/xdks/typescript/reference/classes/Paginator)\<`T`>>

#### 정의 위치

[paginator.ts:260](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L260)

***

### fetchLast

▸ **fetchLast**(`count`): `Promise`\<`void`>

지정된 개수까지 추가 항목을 가져오기

#### 매개변수

| 이름      | 타입       |
| :------ | :------- |
| `count` | `number` |

#### 반환값

`Promise`\<`void`>

#### 정의 위치

[paginator.ts:274](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L274)

***

### reset

▸ **reset**(): `void`

paginator를 초기 상태로 재설정

#### 반환값

`void`

#### 정의 위치

[paginator.ts:288](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L288)

***

### \[iterator]

▸ **\[iterator]**(): `Iterator`\<`T`, `any`, `undefined`>

가져온 모든 항목에 대한 이터레이터

#### 반환값

`Iterator`\<`T`, `any`, `undefined`>

#### 정의 위치

[paginator.ts:303](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L303)

***

### \[asyncIterator]

▸ **\[asyncIterator]**(): `AsyncIterator`\<`T`, `any`, `undefined`>

페이지를 자동으로 가져오는 비동기 이터레이터

#### 반환값

`AsyncIterator`\<`T`, `any`, `undefined`>

#### 구현

AsyncIterable.\[asyncIterator]

#### 정의 위치

[paginator.ts:312](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/paginator.ts#L312)
