Create isolated event listeners
This commit is contained in:
@@ -72,12 +72,21 @@ async function handler(req: Request): Promise<Response> {
|
||||
} = body;
|
||||
|
||||
const executionPromise = new Promise((resolve, reject) => {
|
||||
availableWorker.worker.onmessage = (e) => {
|
||||
const messageHandler = (e) => {
|
||||
resolve(e.data);
|
||||
cleanup();
|
||||
};
|
||||
availableWorker.worker.onerror = (e) => {
|
||||
const errorHandler = (e) => {
|
||||
reject(new Error(`Worker error: ${e.message}`));
|
||||
cleanup();
|
||||
};
|
||||
const cleanup = () => {
|
||||
availableWorker.worker.removeEventListener("message", messageHandler);
|
||||
availableWorker.worker.removeEventListener("error", errorHandler);
|
||||
};
|
||||
|
||||
availableWorker.worker.addEventListener("message", messageHandler);
|
||||
availableWorker.worker.addEventListener("error", errorHandler);
|
||||
});
|
||||
|
||||
const timeoutPromise = new Promise((_, reject) =>
|
||||
|
||||
Reference in New Issue
Block a user