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() 釋放資源: