框架
版本
Debouncer API 参考
Throttler API 参考
速率限制器 API 参考
队列 API 参考
批处理器 API 参考
批处理器示例

useAsyncQueuer

函数:useAsyncQueuer()

ts
function useAsyncQueuer<TValue>(fn, options): AsyncQueuer<TValue>
function useAsyncQueuer<TValue>(fn, options): AsyncQueuer<TValue>

定义于:react-pacer/src/async-queuer/useAsyncQueuer.ts:51

一个较低级别的 React 钩子,用于创建一个 AsyncQueuer 实例来管理异步项目队列。

特性:

  • 通过 getPriority 选项支持优先级队列
  • 可配置的并发限制
  • 任务成功/错误/完成回调
  • FIFO(先进先出)或 LIFO(后进先出)队列行为
  • 暂停/恢复任务处理
  • 任务取消
  • 项目过期以从队列中清除过时项目

任务将并发处理,直至达到配置的并发限制。当一个任务完成时, 如果低于并发限制,则处理下一个待处理任务。

错误处理:

  • 如果提供了 onError 处理程序,它将与错误和队列器实例一起被调用
  • 如果 throwOnError 为 true(未提供 onError 处理程序时的默认值),则会抛出错误
  • 如果 throwOnError 为 false(提供 onError 处理程序时的默认值),则会吞没错误
  • onError 和 throwOnError 可以一起使用——处理程序将在抛出任何错误之前被调用
  • 可以使用底层的 AsyncQueuer 实例检查错误状态

类型参数

TValue

参数

fn

(value) => Promise<any>

options

AsyncQueuerOptions<TValue> = {}

返回

AsyncQueuer<TValue>

示例

tsx
// 用于 API 请求的基本异步队列器
const asyncQueuer = useAsyncQueuer({
  initialItems: [],
  concurrency: 2,
  maxSize: 100,
  started: false,
  onSuccess: (result) => {
    console.log('项目已处理:', result);
  },
  onError: (error) => {
    console.error('处理失败:', error);
  }
});

// 将项目添加到队列
asyncQueuer.addItem(newItem);

// 开始处理
asyncQueuer.start();
// 用于 API 请求的基本异步队列器
const asyncQueuer = useAsyncQueuer({
  initialItems: [],
  concurrency: 2,
  maxSize: 100,
  started: false,
  onSuccess: (result) => {
    console.log('项目已处理:', result);
  },
  onError: (error) => {
    console.error('处理失败:', error);
  }
});

// 将项目添加到队列
asyncQueuer.addItem(newItem);

// 开始处理
asyncQueuer.start();