跳转到主要内容
功能强大的 X API 分页器 该类为 X API 提供完善的分页支持,包括:
  • 使用 for await...of 循环进行自动迭代
  • 通过 fetchNext()fetchPrevious() 进行手动翻页控制
  • 访问用于分页令牌和计数的 meta 数据
  • 错误处理与速率限制检测
  • 支持正向与反向分页
示例
// 自动迭代
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>

构造器

构造函数

new Paginator<T>(fetchPage): Paginator<T> 创建新的分页器实例

类型参数

名称
T

参数

名称类型描述
fetchPage(token?: string) => Promise<PaginatedResponse<T>>基于分页令牌获取一页数据的函数

返回

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

done

get done(): boolean 检查分页是否已完成

返回

boolean

定义于

paginator.ts:122

rateLimited

get rateLimited(): boolean 检查是否达到速率限制

返回值

boolean

定义于

paginator.ts:129

方法

fetchNext

fetchNext(): Promise<void> 获取下一页并将项目添加到当前实例 此方法会获取下一页的data,并将这些项目附加到当前分页器实例,同时更新分页状态和meta信息。

返回值

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:153
next(): Promise<Paginator<T>> 以新的实例获取下一页 此方法会创建一个从下一页开始的新分页器实例,且不会影响当前分页器的状态。

返回

Promise<Paginator<T>> 用于获取下一页的新的分页器实例 示例
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: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(): 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