メインコンテンツへスキップ
高機能な X API 用 Paginator このクラスは、X API 向けに充実したページネーション機能を提供します。主な機能は次のとおりです。
  • for await...of ループによる自動イテレーション
  • fetchNext()fetchPrevious() による手動でのページ制御
  • ページネーション用トークンや件数などのメタデータへのアクセス
  • エラー処理およびレート制限の検出
  • 前方・後方いずれのページネーションにも対応
Example
// 自動イテレーション
const followers = await client.users.getFollowers('783214');
for await (const follower of followers) {
  console.log(follower.username);
}

// 手動制御
const followers = await client.users.getFollowers('783214');
await followers.fetchNext();
console.log(followers.items.length); // フォロワー数
console.log(followers.meta.next_token); // 次ページトークン

// ステータス確認
if (!followers.done) {
  await followers.fetchNext();
}

型パラメータ

名前説明
Tページング対象のアイテムの型

階層

実装

  • AsyncIterable<T>

コンストラクタ

constructor

new Paginator<T>(fetchPage): Paginator<T> 新しい Paginator インスタンスを作成します

型パラメータ

名称
T

パラメーター

名前説明
fetchPage(token?: string) => Promise<PaginatedResponse<T>>ページネーション・トークンを受け取り、data の1ページ分を取得する関数

戻り値

Paginator<T>

定義箇所

paginator.ts:87

アクセサー

items

get items(): T[] フェッチ済みのすべての項目を取得します

戻り値

T[]

定義場所

paginator.ts:94

meta

get meta(): any 現在のページネーション用メタデータを取得します

戻り値

any

定義箇所

paginator.ts:101

includes

get includes(): undefined | Record<string, any> 現在の includes データを取得します

戻り値

undefined | Record<string, any>

定義場所

paginator.ts:108

errors

get errors(): undefined | any[] 現在のエラーを取得します

戻り値

undefined | any[]

定義場所

paginator.ts:115

完了

get done(): boolean ページネーションが完了しているかを確認する

戻り値

boolean

定義箇所

paginator.ts:122

rateLimited

get rateLimited(): boolean レート制限に達したかどうかを確認します

戻り値

boolean

定義先

paginator.ts:129

メソッド

fetchNext

fetchNext(): Promise<void> 次のページを取得し、現在のインスタンスにアイテムを追加します このメソッドは次のページのdataを取得し、そのアイテムを現在のpaginatorインスタンスに追加します。ページネーションの状態とmetaを更新します。

戻り値

Promise<void>
const followers = await client.users.getFollowers('783214');
await followers.fetchNext(); // 最初のページを取得
console.log(followers.items.length); // フォロワー数

if (!followers.done) {
  await followers.fetchNext(); // 2ページ目を取得
  console.log(followers.items.length); // ページ全体のフォロワー総数
}
Throws API リクエストが失敗した場合にスローされます

定義場所

paginator.ts:153
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); // 2ページ目
}

定義元

paginator.ts:208

fetchPrevious

fetchPrevious(): Promise<void> 前のページを取得します(サポートされている場合)

戻り値

Promise<void>

定義箇所

paginator.ts:222
previous(): Promise<Paginator<T>> 前のページを新しいインスタンスとして取得します

戻り値

Promise<Paginator<T>>

定義元

paginator.ts:257

fetchLast

fetchLast(count): Promise<void> 指定した数まで追加のアイテムを取得します

パラメーター

名称
countnumber

戻り値

Promise<void>

定義箇所

paginator.ts:271

reset

reset(): void ページネーターを初期状態に戻します

戻り値

void

定義先

paginator.ts:285

[iterator]

[iterator](): Iterator<T, any, undefined> 取得済みのすべてのアイテムを走査するためのイテレーター

戻り値

Iterator<T, any, undefined>

定義場所

paginator.ts:300

[asyncIterator]

[asyncIterator](): AsyncIterator<T, any, undefined> ページを自動取得する非同期イテレーター

戻り値

AsyncIterator<T, any, undefined>

実装

AsyncIterable.[asyncIterator]

定義元

paginator.ts:309