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