In main window:
Code: Select all
let worker = new Worker("chrome://addon/content/workers/worker.js")
worker.addEventListener('message', e =>
{
console.log("done", e.data);
worker.terminate();
}, false);
worker.postMessage('5000')
Code: Select all
addEventListener('message', e => {
/**/console.log('Message received from main script', e)
setTimeout(() => {
/**/console.log('Posting message back to main script')
postMessage(12345);
}, 2000);
});
Code: Select all
17:27:26.306 "Message received from main script" "[object MessageEvent]" worker.js:50:4
17:27:28.431 "Posting message back to main script" worker.js:52:4
17:27:28.665 "done" 12345 main.js:900
Also, in passing, if I set the actual timeout to anything much over 2 seconds, the timeout doesn't expire