- This module allows you to write Web Worker code inline with the rest of your code
- This module is also somewhat type safe
- Allows you to Thread already existing functions
- Allows module imports inside the worker
let thread = new Thread<number>((e: MessageEvent)=>{
console.log('Worker: Message received from main script');
const result = e.data[0] * e.data[1];
if (isNaN(result)) {
return 0;
} else {
console.log('Worker: Posting message back to main script');
return(result);
}
}, "module");
thread.onMessage((e)=>{
console.log(`back from thread: ${e}`)
})
thread.postMessage([10, 12])
Instead of using the workers postMessage() method we return value from withing our method
Here's a few more examples
function someFunction(e: MessageEvent){
return 0;
}
new Thread((e: MessageEvent)=>{return 0}, "module"); // inline Thread with return type of number
new Thread(someFunction, "module"); // thread an already existing function
new Thread(someFunction, "module", ['import Something from "../some.bundle.js";']); // thread with custom importing
Method / variable | Description |
---|---|
worker | The Worker. |
stopped | Tells if the worker has been stopped |
postMessage(msg) | Sends data to the Thread |
stop() | calls terminate on the worker. |
remove() | Removes the current worker file from the temporary folder. NOTE: Can be used while the program is running (calls stop()..) |
onMessage(callback: (e: T) =>void) | Bind to the worker to receive messages |