gpt4 book ai didi

javascript - 从 C++ Node.js 插件调用现有的 JavaScript 函数 - 从另一个线程

转载 作者:可可西里 更新时间:2023-11-01 17:39:53 25 4
gpt4 key购买 nike

也许我只是没有搜索正确的术语,但我被困住了..

我需要从 C++ 调用一个 JavaScript 函数,非常类似于 done using the plain C API .

注意:我不想回调传递给C++代码,但我已经知道要调用的函数的名称!

例如,我在 JavaScript 中有一个这样的函数:

function log_message_callback(context, message) {
console.log(`${context}: ${message}`);
}

my_napi_module.initialize(); // <-- starts thread that would call log_message_callback

我想从 C++ 调用它(顺便说一句,从与主线程不同的线程):

#include <napi.h>

void log_message_callback(char const* message) {
// magic Napi code which would call log_message_callback in JavaScript
}

void some_thread_fn() {
log_message_callback("hello world");
}

我可以这样做吗?我该怎么做?我应该一直在寻找什么?!

最佳答案

JavaScript functions can normally only be called from a native addon's main thread. You may get more information about it from

. https://nodejs.org/dist/latest-v11.x/docs/api/n-api.html#n_api_asynchronous_thread_safe_function_calls

napi_call_function() 可用于从 native 层调用 JavaScript 函数。该文档也有一个代码片段来说明它的用法。 https://nodejs.org/dist/latest-v11.x/docs/api/n-api.html#n_api_napi_call_function

关于javascript - 从 C++ Node.js 插件调用现有的 JavaScript 函数 - 从另一个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57396412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com