callbackHandler method
dynamic
callbackHandler(
- dynamic callData
Implementation
callbackHandler(dynamic callData) {
String uuid = callData['eventId'];
List<dynamic> args = callData['args'];
List<Object?> argTypes = callData['argTypes'];
String methodName = callData['method'];
dynamic callbacks = CallbackQueue.instance._callbacks[uuid];
// 通用类型转换实现
for (int index = 0; index < args.length; index++) {
dynamic arg = args[index];
Object? type = argTypes[index];
if (type != null || !['Int', 'String', 'Boolean'].contains(type)) {
// 有值则做转换
args[index] = arg;
}
// 否则不做处理
}
// 是否要移除监听,表示所有监听回调完成
bool needRemove = callbacks.call(methodName, args) ?? false;
if (needRemove) {
CallbackQueue.instance._callbacks.remove(uuid);
}
}