簡體   English   中英

從節點插件多次調用 JS 函數

[英]Calling JS function multiple times from node addon

編輯:顯然不清楚,我想我會讓它更簡潔。

構建節點應用程序,使用本機插件。 我需要通過 node-addon-api 將此項目中的 Javascript 函數傳遞到我的 C++ 插件中。 然后,我需要能夠從 C++ 多次調用該函數。 當我發現由於 napi_env(調用函數所需)不受緩存保護而無法保存對 Javascript 函數的引用時,問題就出現了。

在互聯網上找不到關於如何執行此操作的任何明確答案或示例,正在尋找提示。

原來的:

正如標題所描述的,我需要找到一種在我的插件中多次調用 JS 函數的方法。 通用用例是我的插件執行一些長時間運行的命令,並且需要定期將狀態更新推送回 javascript。

我認為最好的方法是讓用戶傳入一個函數(它只是附加到一個文本塊)供我的插件調用(這樣它就可以編寫更新),這樣 javascript 端就可以決定它在哪里顯示。

我已經嘗試過讓這個工作。 發現我在持久的 napi_value 中保存函數的原始方法不起作用,因為您也無法保存 napi_env。

我找到了這個線程,我認為它最接近我需要的,但我無法將 Nan 翻譯成 napi_ 所以它可以與我正在使用的東西一起使用。 從多線程 C++ 插件回調 NodeJS Javascript 函數

還嘗試傳入 EventEmitter,但問題與上述類似。

任何人都可以就我是否朝着正確的方向前進? 也許幫我挖掘一些關於如何實現這一點的例子?

你的問題不清楚。 假設您在 Node 中使用 Javascript,請查看FFI ,它允許使用 Javascript 加載和調用動態庫。

或者,可以從命令行執行如下函數:

/usr/bin/node yourjsfunctionfilehere.js

您還可以將命令行參數傳遞給被調用的 JS 函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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