napi_create_threadsafe_function
NAPI_EXTERN napi_status
napi_create_threadsafe_function(napi_env env,
napi_value func,
napi_value async_resource,
napi_value async_resource_name,
size_t max_queue_size,
size_t initial_thread_count,
void* thread_finalize_data,
napi_finalize thread_finalize_cb,
void* context,
napi_threadsafe_function_call_js call_js_cb,
napi_threadsafe_function* result); [in] env:API 被调用时所处的环境。[in] func:一个可选的 JavaScript 函数,可从另一个线程调用。如果将NULL传递给call_js_cb,则必须提供此函数。[in] async_resource:与异步工作关联的可选对象,将被传递给可能的async_hooksinit钩子。[in] async_resource_name:一个 JavaScript 字符串,用于提供标识符,表示由async_hooksAPI 暴露的诊断信息所提供的资源类型。[in] max_queue_size:队列的最大大小。0表示无限制。[in] initial_thread_count:初始获取的数量,即将使用此函数的线程的初始数量,包括主线程。[in] thread_finalize_data:可选数据,将传递给thread_finalize_cb。[in] thread_finalize_cb:销毁napi_threadsafe_function时可调用的可选函数。[in] context:可选择附加到生成的napi_threadsafe_function的数据。[in] call_js_cb:可选回调,用于响应在不同线程上的调用而调用 JavaScript 函数。此回调将在主线程上调用。如果未提供,将以无参数调用 JavaScript 函数,并将undefined作为其this值。napi_threadsafe_function_call_js提供了更多详细信息。[out] result:异步线程安全的 JavaScript 函数。
更改历史:
-
实验性(定义了
NAPI_EXPERIMENTAL):call_js_cb中抛出的未捕获异常将通过'uncaughtException'事件处理,而不是被忽略。