SteamCloudGame/lib/common/EventBusUtil.dart
2024-11-23 15:25:11 +08:00

43 lines
860 B
Dart

import 'dart:async';
import 'package:event_bus/event_bus.dart';
class EventBusUtil {
static EventBus? _eventBus;
//获取单例
static EventBus getInstance() {
_eventBus ??= EventBus();
return _eventBus!;
}
//返回某事件的订阅者
static StreamSubscription<T> listen<T extends Event>(Function(T event) onData) {
_eventBus ??= EventBus();
//内部流属于广播模式,可以有多个订阅者
return _eventBus!.on<T>().listen(onData);
}
//发送事件
static void fire<T extends Event>(T e) {
_eventBus ??= EventBus();
_eventBus!.fire(e);
}
}
abstract class Event {}
class OrderStatusEvent extends Event {}
class PushStatusEvent extends Event {}
//刷新用户信息
class RefreshUserdata extends Event {
RefreshUserdata();
}
//支付成功
class PaySuccess extends Event {
PaySuccess();
}