napi_add_async_cleanup_hook


NAPI_EXTERN napi_status napi_add_async_cleanup_hook(
    node_api_nogc_env env,
    napi_async_cleanup_hook hook,
    void* arg,
    napi_async_cleanup_hook_handle* remove_handle); 
  • [in] env:调用 API 的环境。

    ¥[in] env: The environment that the API is invoked under.

  • [in] hook:在环境拆卸时调用的函数指针。

    ¥[in] hook: The function pointer to call at environment teardown.

  • [in] arg:调用时传递给 hook 的指针。

    ¥[in] arg: The pointer to pass to hook when it gets called.

  • [out] remove_handle:引用异步清理钩子的可选句柄。

    ¥[out] remove_handle: Optional handle that refers to the asynchronous cleanup hook.

hook 注册为 napi_async_cleanup_hook 类型的函数,作为在当前 Node.js 环境退出后使用 remove_handlearg 参数运行的函数。

¥Registers hook, which is a function of type napi_async_cleanup_hook, as a function to be run with the remove_handle and arg parameters once the current Node.js environment exits.

napi_add_env_cleanup_hook 不同的是,hook 允许是异步的。

¥Unlike napi_add_env_cleanup_hook, the hook is allowed to be asynchronous.

否则,行为通常与 napi_add_env_cleanup_hook 的行为相匹配。

¥Otherwise, behavior generally matches that of napi_add_env_cleanup_hook.

如果 remove_handle 不是 NULL,则将在其中存储一个不透明的值,该值稍后必须传递给 napi_remove_async_cleanup_hook,无论钩子是否已被调用。通常,当为其添加此钩子的资源无论如何都被拆除时,就会发生这种情况。

¥If remove_handle is not NULL, an opaque value will be stored in it that must later be passed to napi_remove_async_cleanup_hook, regardless of whether the hook has already been invoked. Typically, that happens when the resource for which this hook was added is being torn down anyway.