1

在 NodeJS 文档中,Worker 构造函数看起来需要一个包含要在新工作线程上执行的代码的文件的路径。

它是这样的:

const encode_worker = new Worker(`./service-encode.js`, { workerData: config });

我的问题是是否可以为 Worker 传递字符串而不是文件?我问的原因是由于我们的主应用程序是如何从其主机应用程序构建和启动的。

例如,是否可以做

const encode_worker = new Worker(`console.log("Hello World")`, { workerData: config });

如果是这样,我们如何处理多行字符串?

4

1 回答 1

0

以下对我有用。

const {
    Worker
} = require('worker_threads');

const workerString = `
const {
    parentPort
} = require('worker_threads');

parentPort.postMessage('hello')
`

const worker = new Worker(workerString, {eval: true});
worker.on('message', msg => {
    console.log(msg)
})
于 2022-01-27T08:22:58.617 回答