1import { DeviceEventEmitter } from 'react-native'; 2 3import * as Kernel from '../kernel/Kernel'; 4 5const addListenerWithNativeCallback = ( 6 eventName: string, 7 eventListener: (event: any) => Promise<any> 8) => { 9 return DeviceEventEmitter.addListener(eventName, async (event) => { 10 try { 11 let result = await eventListener(event); 12 if (!result) { 13 result = {}; 14 } 15 Kernel.onEventSuccess(event.eventId, result); 16 } catch (e) { 17 Kernel.onEventFailure(event.eventId, e.message); 18 } 19 }); 20}; 21 22export default addListenerWithNativeCallback; 23