编辑:显然不清楚,我想我会让它更简洁。
构建节点应用程序,使用本机插件。我需要通过 node-addon-api 将此项目中的 Javascript 函数传递到我的 C++ 插件中。然后,我需要能够从 C++ 多次调用该函数。当我发现由于 napi_env(调用函数所需的)受到缓存保护而无法保存对 Javascript 函数的引用时,问题就出现了。
在互联网上找不到有关如何执行此操作的任何明确答案或示例,正在寻找提示。
原来的:
正如标题所描述的,我需要想办法在我的插件中多次调用 JS 函数。通用用例是我的插件执行一些长时间运行的命令,并且需要定期将状态更新推送回 javascript。
我认为最好的方法是让用户传入一个函数(它只是附加到一个文本块)让我的插件调用(这样它就可以编写更新),这样 javascript 端可以决定它在哪里显示。
我已经尝试过让这个工作。发现我将函数保存在持久 napi_value 中的原始方法不起作用,因为您也无法保存 napi_env。
我找到了这个线程,我认为它最接近我需要的东西,但我无法将 Nan 翻译成 napi_ 所以它可以与我正在使用的东西一起使用。来自多线程 C++ 插件的回调 NodeJS Javascript 函数
还尝试传入 EventEmitter,但问题与上述类似。
如果我朝着正确的方向前进,任何人都可以给出一些指示吗?也许帮我找出一些关于如何实现这一目标的例子?