webworker-ng
Version:
The Web Worker implementation based on thread for Node.js
51 lines (45 loc) • 1.06 kB
JavaScript
;
const WebWorker = require('../').WebWorker;
const worker = new WebWorker((self) => {
// Note: code is in new v8 runtime
require('./example/main.worker.js')(self);
});
let shouldStopWorker2 = false;
worker.onstdout = function(text) {
console.log('onstdout', text);
};
worker.onstderr = function(err) {
console.log('onstderr', err);
};
worker.onmessage = function(data) {
if (data && data.stopWorker2 === true) {
shouldStopWorker2 = true;
return;
}
console.log('received message from worker:', data);
setTimeout(() => {
worker.postMessage({ host: true });
}, 100);
};
{
let wrongWorker = new WebWorker((self, send, check) => {
send('start');
while (true) {
// Do nothing
if (check()) break;
}
send('end');
}, {
defines: [
function postMessage2worker(msg) {
worker.postMessage(`from wrong worker: ${msg}`);
if (msg === 'end') {
worker.terminate();
}
},
function check() {
return shouldStopWorker2;
}
]
});
}