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

asyncQueue

函数:asyncQueue()

ts
function asyncQueue<TValue>(fn, initialOptions): (item, position, runOnItemsChange) => void
function asyncQueue<TValue>(fn, initialOptions): (item, position, runOnItemsChange) => void

定义于:async-queuer.ts:612

创建一个新的 AsyncQueuer 实例并返回一个绑定的 addItem 函数,用于添加任务。 队列器会自动启动并准备处理项目。

错误处理:

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

示例用法:

ts
const enqueue = asyncQueue<string>(async (item) => {
  return item.toUpperCase();
}, {...options});

enqueue('hello');
const enqueue = asyncQueue<string>(async (item) => {
  return item.toUpperCase();
}, {...options});

enqueue('hello');

类型参数

TValue

参数

fn

(value) => Promise<any>

initialOptions

AsyncQueuerOptions<TValue>

返回

Function

将项目添加到队列。如果队列已满,则拒绝该项目并调用 onReject。 可以根据优先级或根据配置在前面/后面插入项目。

参数

item

TValue & object

position

QueuePosition = ...

runOnItemsChange

boolean = true

返回

void

示例

ts
queuer.addItem({ value: 'task', priority: 10 });
queuer.addItem('task2', 'front');
queuer.addItem({ value: 'task', priority: 10 });
queuer.addItem('task2', 'front');