Improve error handling in workerSendReceive.
This commit is contained in:
+8
-2
@@ -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) {
|
||||
}
|
||||
};
|
||||
});
|
||||
worker.postMessage(message, transfer);
|
||||
return await p
|
||||
try {
|
||||
worker.postMessage(message, transfer);
|
||||
return await p
|
||||
} finally {
|
||||
worker.onmessage = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user