Skip to main content
JSCallback 包装 ArkTS 函数,使其可作为 C 函数指针使用。

基本用法

闭包捕获

线程安全

可能从不同线程调用时设置 threadsafe: true

线程安全与 C 函数指针

threadsafe: true 时,cb.ptr 返回一个真实的 C 函数指针(蹦床地址),可直接传给原生 C 代码:
内部机制:JSCallback 创建时通过 napi_create_threadsafe_function 创建 TSFN,同时分配 16 个预编译的本机蹦床函数,每个槽位对应一个独立函数地址。cb.ptr 通过 getCallbackPtr 返回该地址,原生 C 代码调用该地址时会先通过 TrampolineDispatcher 同步调用 ArkTS 回调并返回结果。

清理

始终调用 close() 释放资源:

多个回调

传递给原生函数