簡體   English   中英

導入的 function 將無法在節點工作線程中工作,因為未加載依賴關系圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM