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

# Paginateur

Paginateur pour la X API avec des fonctionnalités avancées

Cette classe fournit une prise en charge complète de la pagination pour la X API, notamment :

* Itération automatique avec des boucles `for await...of`
* Contrôle manuel des pages avec `fetchNext()` et `fetchPrevious()`
* Accès aux métadonnées pour les jetons de pagination et les compteurs
* Gestion des erreurs et détection des limites de débit
* Prise en charge de la pagination vers l'avant et vers l'arrière

**`Exemple`**

```typescript  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); // Jeton de la page suivante

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

## Paramètres de type

| Nom | Description                    |
| :-- | :----------------------------- |
| `T` | Le type des éléments à paginer |

<div id="hierarchy">
  ## Hiérarchie
</div>

* **`Paginator`**

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

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

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

<div id="implements">
  ## Implémente
</div>

* `AsyncIterable`\<`T`>

<div id="constructors">
  ## Constructeurs
</div>

<div id="constructor">
  ### constructor
</div>

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

Crée une nouvelle instance de `Paginator`

<div id="type-parameters">
  #### Paramètres de type
</div>

| Nom |
| :-- |
| `T` |

<div id="parameters">
  #### Paramètres
</div>

| Nom         | Type                                                                                                                        | Description                                                                 |
| :---------- | :-------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------- |
| `fetchPage` | (`token?`: `string`) => `Promise`\<[`PaginatedResponse`](/fr/xdks/typescript/reference/interfaces/PaginatedResponse)\<`T`>> | Fonction qui récupère une page de données à partir d’un jeton de pagination |

#### Renvoie

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

<div id="defined-in">
  #### Défini dans
</div>

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

<div id="accessors">
  ## Accesseurs
</div>

<div id="items">
  ### items
</div>

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

Renvoie tous les éléments récupérés

#### Renvoie

`T`\[]

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="meta">
  ### meta
</div>

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

Récupère les métadonnées de pagination en cours

#### Renvoie

`any`

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="includes">
  ### includes
</div>

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

Récupère les données actuelles de includes

<div id="returns">
  #### Valeur de retour
</div>

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

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="errors">
  ### errors
</div>

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

Récupère les erreurs actuelles

#### Renvoie

`undefined` | `any`\[]

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="done">
  ### done
</div>

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

Vérifier si la pagination est terminée

#### Renvoie

`boolean`

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="ratelimited">
  ### rateLimited
</div>

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

Indique si la limite de débit a été atteinte

#### Renvoie

`boolean`

<div id="defined-in">
  #### Défini dans
</div>

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

<div id="methods">
  ## Méthodes
</div>

<div id="fetchnext">
  ### fetchNext
</div>

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

Récupère la page suivante et ajoute les éléments à l'instance en cours

Cette méthode récupère la page de données suivante et ajoute les éléments à
l'instance en cours du paginateur. Elle met à jour l'état de la pagination et les métadonnées.

#### Renvoie

`Promise`\<`void`>

**`Exemple`**

```typescript  theme={null}
const followers = await client.users.getFollowers('783214');
await followers.fetchNext(); // Récupérer la première page
console.log(followers.items.length); // Nombre d'abonnés

if (!followers.done) {
  await followers.fetchNext(); // Récupérer la deuxième page
  console.log(followers.items.length); // Total des abonnés sur toutes les pages
}
```

**`Throws`**

Lorsque la requête à l’API échoue

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="next">
  ### next
</div>

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

Récupère la page suivante sous forme de nouvelle instance

Cette méthode crée une nouvelle instance de paginator qui démarre à la page suivante,
sans modifier l'état du paginator actuel.

#### Renvoie

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

Nouvelle instance de `Paginator` pour la page suivante

**`Exemple`**

```typescript  theme={null}
const followers = await client.users.getFollowers('783214');
await followers.fetchNext(); // Récupère la première page

if (!followers.done) {
  const nextPage = await followers.next(); // Obtient la page suivante en tant que nouvelle instance
  console.log(followers.items.length); // Toujours la première page
  console.log(nextPage.items.length); // Deuxième page
}
```

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="fetchprevious">
  ### fetchPrevious
</div>

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

Récupère la page précédente (si elle est prise en charge)

#### Retourne

`Promise`\<`void`>

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="previous">
  ### previous
</div>

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

Renvoie la page précédente sous forme d’une nouvelle instance

#### Retourne

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

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="fetchlast">
  ### fetchLast
</div>

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

Récupérer jusqu’à un nombre spécifié d’éléments supplémentaires

<div id="parameters">
  #### Paramètres
</div>

| Nom     | Type     |
| :------ | :------- |
| `count` | `number` |

#### Renvoie

`Promise`\<`void`>

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="reset">
  ### reset
</div>

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

Réinitialise le pagineur à son état initial

#### Renvoie

`void`

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="iterator">
  ### \[iterator]
</div>

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

Itérateur sur tous les éléments récupérés

#### Renvoie

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

<div id="defined-in">
  #### Défini dans
</div>

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

***

<div id="asynciterator">
  ### \[asyncIterator]
</div>

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

Itérateur asynchrone permettant de récupérer automatiquement les pages

#### Renvoie

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

<div id="implementation-of">
  #### Implémentation de
</div>

AsyncIterable.\[asyncIterator]

<div id="defined-in">
  #### Défini dans
</div>

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


Built with [Mintlify](https://mintlify.com).