Files
Node.js-14-Cookbook/Chapter10/worker-app/fibonacci-worker.js
T
2020-08-31 01:12:46 +01:00

33 lines
603 B
JavaScript

const {
Worker,
isMainThread,
parentPort,
workerData,
} = require("worker_threads");
const n = 10;
// Fibonacci calculator
const fibonacci = (n) => {
let a = 0, b = 1, next = 1, i = 2;
for (i; i <= n; i++) {
next = a + b;
a = b;
b = next;
}
return next;
};
if (isMainThread) {
// Main thread code
const worker = new Worker(__filename, {
workerData: n,
});
worker.on("message", (msg) => {
console.log(`The Fibonacci number at position ${n} is ${msg}`);
});
console.log("...");
} else {
// Worker code
parentPort.postMessage(fibonacci(workerData));
}