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