napi_create_external


napi_status napi_create_external(napi_env env,
                                 void* data,
                                 napi_finalize finalize_cb,
                                 void* finalize_hint,
                                 napi_value* result) 
  • [in] env:调用该 API 时所处的环境。
  • [in] data:指向外部数据的原始指针。
  • [in] finalize_cb:当外部值被回收时可选调用的回调。napi_finalize 提供了更多详细信息。
  • [in] finalize_hint:在收集期间传递给 finalize 回调的可选提示。
  • [out] result:表示一个外部值的 napi_value

如果 API 成功,则返回 napi_ok

【Returns napi_ok if the API succeeded.】

此 API 分配了一个附带外部数据的 JavaScript 值。这用于通过 JavaScript 代码传递外部数据,以便本地代码稍后可以使用 napi_get_value_external 检索该数据。

【This API allocates a JavaScript value with external data attached to it. This is used to pass external data through JavaScript code, so it can be retrieved later by native code using napi_get_value_external.】

该 API 添加了一个 napi_finalize 回调,当刚创建的 JavaScript 对象被垃圾回收时,该回调将被调用。

【The API adds a napi_finalize callback which will be called when the JavaScript object just created has been garbage collected.】

创建的值不是对象,因此不支持附加属性。它被视为一种独立的值类型:使用外部值调用 napi_typeof() 会返回 napi_external

【The created value is not an object, and therefore does not support additional properties. It is considered a distinct value type: calling napi_typeof() with an external value yields napi_external.】