У меня есть вопрос, касающийся использования n-api с использованием функции js в коде c ++. Допустим, у меня есть функции, экспортированные из c ++
Napi::Object init(Napi::Env env, Napi::Object exports) {
exports.Set("testJs", Napi::Function::New(env, TestCpp));
exports.Set("oneMoreCppFunction", Napi::Function::New(env, CppFunctionWithNativeCode));
return exports;
};
TestCpp выглядит:
void TestCpp (const Napi::CallbackInfo& info)
{
Napi::Env env = info.Env();
Napi::Function callback = info[0].As<Napi::Function>();
InternalCppFunction(how to pass callback here?)
}
Шаблон InternalCppFunction:
void InternalCppFunction (void (* callback)( void ))
{
... Some internal behavior
}
И для использования полной информации из файла js:
const someB = require('bindings')('someB')
const callback = () => {
someB.oneMoreCppFunction()
}
someB.testJs(callback)
Таким образом, идея заключается в передаче «callback», который написан на js и использует экспортированную функцию «oneMoreCppFunction» из c ++. И как-то передать этот «обратный вызов» внутри «InternalCppFunction» в качестве указателя на функцию. Возможно ли это, и если это так, как я могу преобразовать / адаптировать / обмануть этот персонал? Большое спасибо заранее.