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

多個回調

傳遞給原生函數