Skip to content

Instantly share code, notes, and snippets.

@tsh-code
Created September 4, 2019 12:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tsh-code/623bee22bb3b0cd032845336dc032855 to your computer and use it in GitHub Desktop.
Save tsh-code/623bee22bb3b0cd032845336dc032855 to your computer and use it in GitHub Desktop.
const { Worker, isMainThread, parentPort } = require('worker_threads')
if (isMainThread) {
module.exports = async function timeConsumingOperationOnThreads(raw) {
return new Promise((resolve, reject) => {
const worker = new Worker(__filename, {
workerData: raw
})
worker.on('message', resolve)
worker.on('error', reject)
worker.on('exit', (code) => {
if (code !== 0) {
reject(new Error(`Worker stopped with exit code ${code}`))
}
})
})
}
} else {
const result = doSomeHeavyComputing()
parentPort.postMessage({ result})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment