Files
tuiche/lib/common/util/EventBus.dart
2025-11-14 12:01:07 +08:00

24 lines
468 B
Dart

import 'dart:async';
class EventBus {
static final EventBus _instance = EventBus._internal();
factory EventBus() => _instance;
EventBus._internal();
final _controller = StreamController.broadcast();
// 发出任意事件
void emit(event) {
_controller.add(event);
}
// 监听指定类型的事件
Stream<T> on<T>() {
return _controller.stream.where((event) => event is T).cast<T>();
}
void dispose() {
_controller.close();
}
}