[英]An imported function won't work in a Node Worker Thread because the dependency graph isn't loaded
我正在嘗試使用node-worker-threads-pool
(包裝器) package 及其DynamicPool
來使用 Node 的worker_threads
。
我的問題是執行一個線程給一個 function 並具有import
s 將不起作用,因為 function 將是undefined
。
// 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
})
這是node-worker-threads-pool
或 Node 的worker_threads
的特定問題嗎? 您知道解決此問題的一些方法嗎?
這似乎是library的限制,與 modules 無關:
注意:如果
task
是 function,則不能在其中使用閉包,如果確實要在 function 中使用外部數據。 您可以使用 workerData 傳遞一些可克隆的數據。
這聽起來很像他們正在對 function 進行字符串化,並僅從該代碼創建一個工人。
請改用工作文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.