111
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
import 'dart:async';
|
||||
|
||||
/// 应用事件类型
|
||||
/// 應用事件類型
|
||||
enum AppEventType {
|
||||
/// 资产变动(余额、持仓等)
|
||||
/// 資產變動(餘額、持倉等)
|
||||
assetChanged,
|
||||
|
||||
/// 订单变动(充提订单状态变化)
|
||||
/// 訂單變動(充提訂單狀態變化)
|
||||
orderChanged,
|
||||
}
|
||||
|
||||
/// 应用事件
|
||||
/// 應用事件
|
||||
class AppEvent {
|
||||
final AppEventType type;
|
||||
final Map<String, dynamic>? data;
|
||||
@@ -17,20 +17,20 @@ class AppEvent {
|
||||
const AppEvent(this.type, {this.data});
|
||||
}
|
||||
|
||||
/// 轻量级应用内事件总线
|
||||
/// 基于 StreamController.broadcast,零外部依赖
|
||||
/// 輕量級應用內事件總線
|
||||
/// 基於 StreamController.broadcast,零外部依賴
|
||||
class AppEventBus {
|
||||
final StreamController<AppEvent> _controller =
|
||||
StreamController<AppEvent>.broadcast();
|
||||
|
||||
/// 广播事件
|
||||
/// 廣播事件
|
||||
void fire(AppEventType type, {Map<String, dynamic>? data}) {
|
||||
if (!_controller.isClosed) {
|
||||
_controller.add(AppEvent(type, data: data));
|
||||
}
|
||||
}
|
||||
|
||||
/// 监听指定类型事件
|
||||
/// 監聽指定類型事件
|
||||
StreamSubscription<AppEvent> on(
|
||||
AppEventType type,
|
||||
void Function(AppEvent) callback,
|
||||
@@ -40,10 +40,10 @@ class AppEventBus {
|
||||
.listen(callback);
|
||||
}
|
||||
|
||||
/// 监听任意事件
|
||||
/// 監聽任意事件
|
||||
Stream<AppEvent> get stream => _controller.stream;
|
||||
|
||||
/// 销毁
|
||||
/// 銷燬
|
||||
void dispose() {
|
||||
_controller.close();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user