function createAsyncQueuer<TValue>(fn, initialOptions): SolidAsyncQueuer<TValue>
function createAsyncQueuer<TValue>(fn, initialOptions): SolidAsyncQueuer<TValue>
定义于:async-queuer/createAsyncQueuer.ts:130
创建一个与 Solid 兼容的 AsyncQueuer 实例,用于管理异步项目队列,并为所有有状态属性公开 Solid 信号。
特性:
任务将并发处理,直至达到配置的并发限制。当一个任务完成时, 如果并发限制允许,则处理下一个待处理任务。
错误处理:
示例用法:
// 用于 API 请求的基本异步队列器
const asyncQueuer = createAsyncQueuer(async (item) => {
// 处理项目
return await fetchData(item);
}, {
initialItems: [],
concurrency: 2,
maxSize: 100,
started: false,
onSuccess: (result) => {
console.log('项目已处理:', result);
},
onError: (error) => {
console.error('处理失败:', error);
}
});
// 将项目添加到队列
asyncQueuer.addItem(newItem);
// 开始处理
asyncQueuer.start();
// 在 UI 中使用 Solid 信号
const pending = asyncQueuer.pendingItems();
// 用于 API 请求的基本异步队列器
const asyncQueuer = createAsyncQueuer(async (item) => {
// 处理项目
return await fetchData(item);
}, {
initialItems: [],
concurrency: 2,
maxSize: 100,
started: false,
onSuccess: (result) => {
console.log('项目已处理:', result);
},
onError: (error) => {
console.error('处理失败:', error);
}
});
// 将项目添加到队列
asyncQueuer.addItem(newItem);
// 开始处理
asyncQueuer.start();
// 在 UI 中使用 Solid 信号
const pending = asyncQueuer.pendingItems();
• TValue
(value) => Promise<any>
AsyncQueuerOptions<TValue> = {}
SolidAsyncQueuer<TValue>