Javascript 导入的函数无法在节点工作线程中工作,因为未加载依赖关系图
我试图使用包装包及其DynamicTool来使用节点的worker_线程 我的问题是,执行一个线程并给出一个包含导入的函数将无法工作,因为该函数将是未定义的Javascript 导入的函数无法在节点工作线程中工作,因为未加载依赖关系图,javascript,node.js,node-modules,es6-modules,node-worker-threads,Javascript,Node.js,Node Modules,Es6 Modules,Node Worker Threads,我试图使用包装包及其DynamicTool来使用节点的worker_线程 我的问题是,执行一个线程并给出一个包含导入的函数将无法工作,因为该函数将是未定义的 这是或节点的工作线程的特定问题吗?您知道解决此问题的一些方法吗?这似乎是一个限制,与模块无关: 注意:如果任务是函数,则不能在其中使用闭包!如果确实希望在函数中使用外部数据,可以使用workerData传递一些可克隆的数据 这听起来很像是他们正在串接函数,并仅从该代码创建工作程序 改用工作文件。我发现自己的节点功能不足。工作线程应该可以,但
这是或节点的工作线程的特定问题吗?您知道解决此问题的一些方法吗?这似乎是一个限制,与模块无关: 注意:如果任务是函数,则不能在其中使用闭包!如果确实希望在函数中使用外部数据,可以使用workerData传递一些可克隆的数据 这听起来很像是他们正在串接函数,并仅从该代码创建工作程序
改用工作文件。我发现自己的节点功能不足。工作线程应该可以,但不能以交互方式调试。这并不是世界末日,因为我已经用纯FP实现了这个项目,我处理效果。顺便提一下显然,由于Node和JS编程的局限性,它不太适合于并行计算。
// moduleA.js
import xyz from './xyz.js'
const f = x => {
xyz () //<-- f is undefined
}
export default f
// moduleB.js
import f from './moduleA.js'
f (1) //
// moduleC.js
const x = await pool.exec ({
task: f
})