Мой проект имеет некоторые функциональные возможности, для которых требуется другой SDK, и некоторые возвращаемые значения этого метода SDK возвращаются в C ++ CALLBACK.
как вернуть значение в javascript из c ++ CALLBACK?
простой код, подобный следующему:
код C ++
// login callback
void CALLBACK LoginResultCallBack(LONG lUserID)
{
// ??? return lUserID to javascript ???
}
// async login
napi_value Login(napi_env env, napi_callback_info info) {
// ...
LOGIN_INFO struLoginInfo = { 0 };
DEVICEINFO struDeviceInfoV40 = { 0 };
// set login callback
struLoginInfo.cbLoginResult = LoginResultCallBack;
SDK_Login(&struLoginInfo, &struDeviceInfoV40);
return 0;
}
napi_value Init(napi_env env, napi_value exports) {
napi_property_descriptor des= { "login", NULL, Login, NULL, NULL, NULL, napi_default, NULL };
assert(napi_define_properties(env, exports, 1, &des) == napi_ok);
return exports;
}
NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)
js код
sdk.login((userId) => {
// ??? get userId from c++ CALLBACK ???
});