feat:提交

This commit is contained in:
2025-07-14 16:04:08 +08:00
parent e8ae91bb2a
commit cf9913469f
15 changed files with 989 additions and 3097 deletions

45
samples/WorkerHelper.ts Normal file
View File

@@ -0,0 +1,45 @@
import path from 'path';
import { Worker as NodeWorker } from 'worker_threads';
export class UniversalWorker {
private worker: NodeWorker | Worker;
constructor(workerPath: string | URL) {
if (typeof window !== 'undefined' && 'Worker' in window) {
// 浏览器环境
this.worker = new Worker(workerPath);
} else {
// Node.js 环境
// const resolvedPath = require.resolve(workerPath);
this.worker = new NodeWorker(workerPath, { eval: false });
}
}
postMessage(message: any): void {
this.worker.postMessage(message);
}
onMessage(callback: (data: any) => void): void {
if ('onmessage' in this.worker) {
this.worker.onmessage = (event) => callback(event.data);
} else {
this.worker.on('message', callback);
}
}
onError(callback: (err: Error) => void): void {
if ('onerror' in this.worker) {
this.worker.onerror = (event) => callback(new Error(event.message));
} else {
this.worker.on('error', callback);
}
}
terminate(): void {
this.worker.terminate();
}
getWorker(){
return this.worker
}
}