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

queue

函数:queue()

ts
function queue<TValue>(fn, options): (item, position, runOnUpdate) => boolean
function queue<TValue>(fn, options): (item, position, runOnUpdate) => boolean

定义于:queuer.ts:549

创建一个在添加项目后立即处理项目的队列。 默认情况下,项目按 FIFO 顺序依次处理。

这是 Queuer 类的一个简化包装器,仅公开 addItem 方法。 队列始终处于运行状态,并在添加项目时处理它们。 要对队列处理进行更多控制,请直接使用 Queuer 类。

示例用法:

ts
// 基本顺序处理
const processItems = queue<number>((n) => console.log(n), {
  wait: 1000,
  onItemsChange: (queuer) => console.log(queuer.peekAllItems())
});
processItems(1); // 输出:1
processItems(2); // 在 1 完成后输出:2

// 优先级队列
const processPriority = queue<number>((n) => console.log(n), {
  getPriority: n => n // 数字越大,优先级越高,越先处理
});
processPriority(1);
processPriority(3); // 在 1 之前处理
// 基本顺序处理
const processItems = queue<number>((n) => console.log(n), {
  wait: 1000,
  onItemsChange: (queuer) => console.log(queuer.peekAllItems())
});
processItems(1); // 输出:1
processItems(2); // 在 1 完成后输出:2

// 优先级队列
const processPriority = queue<number>((n) => console.log(n), {
  getPriority: n => n // 数字越大,优先级越高,越先处理
});
processPriority(1);
processPriority(3); // 在 1 之前处理

类型参数

TValue

参数

fn

(item) => void

options

QueuerOptions<TValue>

返回

Function

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

如果项目已添加,则返回 true;如果队列已满,则返回 false。

示例用法:

ts
queuer.addItem('task');
queuer.addItem('task2', 'front');
queuer.addItem('task');
queuer.addItem('task2', 'front');

参数

item

TValue

position

QueuePosition = ...

runOnUpdate

boolean = true

返回

boolean