function queue<TValue>(fn, initialOptions): (item, position, runOnItemsChange) => boolean
function queue<TValue>(fn, initialOptions): (item, position, runOnItemsChange) => boolean
定义于: queuer.ts:717
创建一个队列,该队列会立即处理添加的项目。默认情况下,项目按先进先出 (FIFO) 的顺序依次处理。
这是 Queuer 类的简化包装器,只暴露了 addItem 方法。队列始终处于运行状态,并将处理添加进来的项目。要更精细地控制队列处理,请直接使用 Queuer 类。
状态管理
用法示例
// Basic sequential processing
const processItems = queue<number>((n) => console.log(n), {
wait: 1000,
onItemsChange: (queuer) => console.log(queuer.peekAllItems())
});
processItems(1); // Logs: 1
processItems(2); // Logs: 2 after 1 completes
// Priority queue
const processPriority = queue<number>((n) => console.log(n), {
getPriority: n => n // Higher numbers processed first
});
processPriority(1);
processPriority(3); // Processed before 1
// Basic sequential processing
const processItems = queue<number>((n) => console.log(n), {
wait: 1000,
onItemsChange: (queuer) => console.log(queuer.peekAllItems())
});
processItems(1); // Logs: 1
processItems(2); // Logs: 2 after 1 completes
// Priority queue
const processPriority = queue<number>((n) => console.log(n), {
getPriority: n => n // Higher numbers processed first
});
processPriority(1);
processPriority(3); // Processed before 1
• TValue
(item) => void
QueuerOptions<TValue>
Function
将一个项目添加到队列。如果队列已满,该项目将被拒绝并调用 onReject。项目可以根据优先级插入,或者根据配置插入到队列的前面/后面。
如果项目已成功添加,则返回 true;如果队列已满,则返回 false。
用法示例
queuer.addItem('task');
queuer.addItem('task2', 'front');
queuer.addItem('task');
queuer.addItem('task2', 'front');
TValue
QueuePosition = ...
boolean = true
boolean
您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。