在NodeJS文档中,Worker构造函数看起来需要一个文件路径,该文件包含要在新工作线程上执行的代码。
它大概是这样的:
const encode_worker = new Worker(`./service-encode.js`, { workerData: config });
我的问题是是否可以为Worker传递一个字符串而不是一个文件?我问这个问题的原因是由于我们的主应用程序是如何构建的,以及如何从它的主机应用程序启动的。
例如,是否有可能
const encode_worker = new Worker(`console.log("Hello World")`, { workerData: config });
如果是这样,我们如何处理多行字符串呢?
2条答案
按热度按时间3okqufwl1#
下面这些对我很有效。
lsmepo6l2#
在Niilo回答的基础上,我使用
{ eval: true }
工作模式的方式如下:我们的想法是使用
Function.toString()
来获得一个构建得更优雅的辅助代码片段,并像普通的JS一样对辅助代码进行实际验证、翻译和lint。请注意,上面的
workerFn
箭头函数中的代码不能从主线程访问任何外部作用域变量,包括必须在工作线程中再次访问require
模块。