Improve error handling in workerSendReceive.

This commit is contained in:
Juliusz Chroboczek
2025-08-10 16:24:06 +02:00
parent c782102567
commit 49dd875ad7
+6
View File
@@ -1283,6 +1283,8 @@ async function setFilter(c) {
* @param {any[]} [transfer]
*/
async function workerSendReceive(worker, message, transfer) {
if(worker.onmessage)
throw new Error("worker busy");
let p = new Promise((resolve, reject) => {
worker.onmessage = e => {
if(e && e.data) {
@@ -1295,8 +1297,12 @@ async function workerSendReceive(worker, message, transfer) {
}
};
});
try {
worker.postMessage(message, transfer);
return await p
} finally {
worker.onmessage = null;
}
}
/**