openModule<T> static method
打开模块
Implementation
static Future<ModuleResult<T>> openModule<T>({
required String module,
required Map<String, dynamic> params,
void Function(Object error)? onError,
}) async {
try {
// 结束其他模块
for (final handler in instance._moduleHandlers.values) {
try {
final shouldContinue = await handler.endModule(module, params);
if (!shouldContinue) {
return ModuleResult.failure(
StateError('Module termination requested'),
);
}
} catch (e) {
onError?.call(e);
return ModuleResult.failure(e);
}
}
// 执行目标模块
final handler = instance._moduleHandlers[module];
if (handler == null) {
final error = StateError('Module "$module" not found');
onError?.call(error);
return ModuleResult.failure(error);
}
final result = await handler.executeModule(params);
return ModuleResult.success(result as T?);
} catch (e) {
onError?.call(e);
return ModuleResult.failure(e);
}
}