Marking.Client.Moblie/marking_app/lib/pages/common/event_bus_mixin.dart

84 lines
2.3 KiB
Dart

// event_bus 混入类
import 'dart:async';
import 'package:event_bus/event_bus.dart';
import 'package:marking_app/utils/event_bus_utils.dart';
mixin EventBusMixin<T> {
StreamSubscription? _subscription;
static final EventBusUtils _exampleUtil = EventBusUtils();
static final EventBus _eBus = _exampleUtil.getEventBus();
/*
* 发起事件总线监听
* @param {Function} callback 回调函数
*/
/// 发起事件总线监听 @param {Function} callback 回调函数
StreamSubscription eventOn<T>({required void Function(T) callback}) {
_subscription = _eBus.on<T>().listen(callback);
return _subscription!;
}
// 触发事件总线
void eventFire({required T model}) {
_exampleUtil.toFire<T>(model);
}
// 关闭监听总线事件
void eventCancel() {
_subscription?.cancel();
}
}
mixin EventBusMixinSub<T> {
StreamSubscription? _subscriptionSub;
static final EventBusUtils _exampleUtilSub = EventBusUtils();
static final EventBus _eBusSub = _exampleUtilSub.getEventBus();
/*
* 发起事件总线监听
* @param {Function} callback 回调函数
*/
/// 发起事件总线监听 @param {Function} callback 回调函数
StreamSubscription eventOnSub<T>({required void Function(T) callback}) {
_subscriptionSub = _eBusSub.on<T>().listen(callback);
return _subscriptionSub!;
}
// 触发事件总线
void eventFireSub({required T model}) {
_exampleUtilSub.toFire<T>(model);
}
// 关闭监听总线事件
void eventCancelSub() {
_subscriptionSub?.cancel();
}
}
mixin EventBusMixinSubLast<T> {
StreamSubscription? _subscriptionSubLast;
static final EventBusUtils _exampleUtilSubLast = EventBusUtils();
static final EventBus _eBusSubLast = _exampleUtilSubLast.getEventBus();
/*
* 发起事件总线监听
* @param {Function} callback 回调函数
*/
/// 发起事件总线监听 @param {Function} callback 回调函数
StreamSubscription eventOnSubLast<T>({required void Function(T) callback}) {
_subscriptionSubLast = _eBusSubLast.on<T>().listen(callback);
return _subscriptionSubLast!;
}
// 触发事件总线
void eventFireSubLast({required T model}) {
_exampleUtilSubLast.toFire<T>(model);
}
// 关闭监听总线事件
void eventCancelSubLast() {
_subscriptionSubLast?.cancel();
}
}