function useAsyncQueuedState<TValue>(fn, options): [TValue[], AsyncQueuer<TValue>]
function useAsyncQueuedState<TValue>(fn, options): [TValue[], AsyncQueuer<TValue>]
定义于:react-pacer/src/async-queuer/useAsyncQueuedState.ts:53
一个较高级别的 React 钩子,用于创建一个具有内置状态管理的 AsyncQueuer 实例。
此钩子将 AsyncQueuer 与 React 状态相结合,以自动跟踪队列项目。 它返回一个包含以下内容的元组:
队列可以配置为:
每当项目发生以下情况时,状态将自动更新:
• TValue
(value) => Promise<any>
AsyncQueuerOptions<TValue> = {}
[TValue[], AsyncQueuer<TValue>]
// 创建具有状态管理的队列
const [queueItems, asyncQueuer] = useAsyncQueuedState({
concurrency: 2,
maxSize: 100,
started: true
});
// 将项目添加到队列 - 状态自动更新
asyncQueuer.addItem(async () => {
const result = await fetchData();
return result;
});
// 开始处理
asyncQueuer.start();
// 停止处理
asyncQueuer.stop();
// queueItems 反映当前的队列状态
const pendingCount = asyncQueuer.peekPendingItems().length;
// 创建具有状态管理的队列
const [queueItems, asyncQueuer] = useAsyncQueuedState({
concurrency: 2,
maxSize: 100,
started: true
});
// 将项目添加到队列 - 状态自动更新
asyncQueuer.addItem(async () => {
const result = await fetchData();
return result;
});
// 开始处理
asyncQueuer.start();
// 停止处理
asyncQueuer.stop();
// queueItems 反映当前的队列状态
const pendingCount = asyncQueuer.peekPendingItems().length;