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 函数,用于从另一个线程调用。如果在call_js_cb中传入NULL,则必须提供该函数。[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 函数。此回调将在主线程上调用。如果未提供,将以无参数且this值为undefined的方式调用 JavaScript 函数。napi_threadsafe_function_call_js提供了更多详细信息。[out] result:异步线程安全的 JavaScript 函数。
更改历史:
-
版本 10(
NAPI_VERSION定义为10或更高):call_js_cb中抛出的未捕获异常将通过'uncaughtException'事件处理,而不是被忽略。