id-scanner-lib
Version:
Browser-based ID card, QR code, and face recognition scanner with liveness detection
53 lines (52 loc) • 1.3 kB
TypeScript
/**
* @file Worker工具
* @description 提供Web Worker相关的工具函数
* @module utils/worker
*/
/**
* 检查是否支持Web Worker
* @returns 是否支持Web Worker
*/
export declare function isWorkerSupported(): boolean;
/**
* 创建Worker
* @param workerFunction Worker函数
* @returns Worker实例
*/
export declare function createWorker<TInput, TOutput>(workerFunction: (input: TInput) => TOutput | Promise<TOutput>): {
postMessage: (input: TInput) => Promise<TOutput>;
terminate: () => void;
};
/**
* 工作线程池
* 用于管理和重用Worker线程,避免频繁创建和销毁
*/
export declare class WorkerPool<T, R> {
private workerFunction;
private size;
private workers;
/**
* 创建工作线程池
*
* @param workerFunction 要在Worker中执行的函数
* @param size 池中Worker的数量
*/
constructor(workerFunction: (data: T) => Promise<R> | R, size?: number);
/**
* 获取一个可用的Worker
*
* @returns Worker包装对象
*/
private getAvailableWorker;
/**
* 执行任务
*
* @param data 要处理的数据
* @returns 处理结果的Promise
*/
execute(data: T): Promise<R>;
/**
* 终止所有Worker
*/
terminate(): void;
}