HarmonyOS napi_env对象是否可以在native层长期持有,作为在某些情况下调用napi的接口时使用

从ts层调到native层时,会传过来napi_env对象,

1.这个对象在整个app的生命周期里是不变的吗?

2.在整个app里是唯一份env吗?

3.是否可以长期持有,然后在uv_queue_work里调用napi时使用?

HarmonyOS
2024-09-11 12:07:52
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

napi_env用于表示Node-API执行时的上下文,Native侧函数入参,并传递给函数中的Node-API接口。

napi_env与JS线程绑定,JS线程退出后,napi_env将失效。禁止缓存napi_env,禁止在不同Worker中传递napi_env。可参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/napi-data-types-interfaces-V5#napi_env,在主线程可长期持有,不能在子线程用。

分享
微博
QQ
微信
回复
2024-09-11 15:15:26
相关问题
为什么禁止缓存napi_env
938浏览 • 1回复 待解决
NAPI执行上层回调,如何获取env
2149浏览 • 1回复 待解决
如何在NAPI执行上层回调获取env
247浏览 • 1回复 待解决
HarmonyOS调用napi_call_function方法崩溃
449浏览 • 1回复 待解决