中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
napi_add_env_cleanup_hook 或者 napi_set_instance_data 的回调走不到, 想在node js环境销毁的地方加上对应的回收动作。
微信扫码分享
napi_add_env_cleanup_hook 在env 析构的时候回调用。 示例如下: 关键代码; 在默认的native C add 函数中 static napi_value Add(napi_env env, napi_callback_info info) { … auto func = [](void *) { OH_LOG_ERROR(LOG_APP, “====== call env clean up”); }; // 关键代码 napi_add_env_cleanup_hook(env, func, nullptr); // 关键代码 … 2、new 个worker,然后worker 调用native ,这时候回生成env, worker close的时候回释放env workerPort.onmessage = (e: MessageEvents) => { hilog.info(0, worker1, " === enter worker1, api :%{public}d ", testNapi.add(3,5)); // 调用native 会生成js 线程的env if (e.data.type == 0) { workerPort.postMessage({ ‘type’: 2 }); hilog.info(0, worker1, " === begin to end worker1 "); workerPort.close() // close后不允许再使用,释放worker 会释放生成的env return; } } }