admin管理员组文章数量:1414613
Here's my worker:
const Worker = require('worker_threads');
const worker = new Worker("function hello () { console.log('hello world');}", { eval: true })
worker.hello() // not correct
I would like to call hello()
How do I do this?
Here's my worker:
const Worker = require('worker_threads');
const worker = new Worker("function hello () { console.log('hello world');}", { eval: true })
worker.hello() // not correct
I would like to call hello()
How do I do this?
Share Improve this question asked Apr 2, 2020 at 18:17 HarryHarry 55.1k76 gold badges187 silver badges270 bronze badges 1-
If you look at the docs, you'll see that's not how they require
Worker
– blex Commented Apr 2, 2020 at 18:22
2 Answers
Reset to default 5Threads municate through passing messages back and forth, for instance:
worker.postMessage("say hello");
Your worker would set up a listener for the message
event, and receive the message as the value
property of that eevnt:
// In the worker
const { isMainThread, parentPort } = require('worker_threads');
if (!isMainThread) {
parentPort.on("message", e => {
// Dispatch here. For instance:
if (e.value === "say hello") {
hello();
}
};
}
function hello() { /*...*/ }
There's a lot more to messaging back and forth, details in the worker documentation.
you can use worker-messenger on npm to write that style:
import { Worker } from 'worker_threads'
import { ParentMessenger } from 'worker-messenger'
const test = async () => {
const results = await messenger.callWorker('testFunction_2', 'args', timeout)
console.log({results});
}
test()
本文标签: javascriptCall function inside worker thread nodejsStack Overflow
版权声明:本文标题:javascript - Call function inside worker thread nodejs - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745161764a2645471.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论