node_api_post_finalizer


稳定性: 1 - 实验性

napi_status node_api_post_finalizer(node_api_basic_env env,
                                    napi_finalize finalize_cb,
                                    void* finalize_data,
                                    void* finalize_hint); 
  • [in] env:调用该 API 时所处的环境。
  • [in] finalize_cb:本地回调,当 JavaScript 对象被垃圾回收时,将用于释放本地数据。napi_finalize 提供了更多详细信息。
  • [in] finalize_data:可选的数据,将传递给 finalize_cb
  • [in] finalize_hint:可选的上下文提示,会传递给 finalize 回调。

如果 API 成功,则返回 napi_ok

【Returns napi_ok if the API succeeded.】

安排 napi_finalize 回调在事件循环中异步调用。

【Schedules a napi_finalize callback to be called asynchronously in the event loop.】

通常,终结器会在垃圾回收器 (GC) 回收对象时被调用。在那时,调用任何可能导致 GC 状态变化的 Node-API 都会被禁用,并且会导致 Node.js 崩溃。

【Normally, finalizers are called while the GC (garbage collector) collects objects. At that point calling any Node-API that may cause changes in the GC state will be disabled and will crash Node.js.】

node_api_post_finalizer 通过允许插件将对这些 Node-API 的调用推迟到垃圾回收(GC)终结之外的时间点,从而帮助解决这一限制。