emit method
发出事件触发
Implementation
Future<void> emit(String name, dynamic? event) async {
if (_containers.containsKey(name)) {
final removeIndexes = <int>[];
for (var i = 0; i < _containers[name]!.length; i++) {
final container = _containers[name]![i];
if (event is AsynchronizedEvent && event.isAsynchronized()) {
await container.listener(event);
} else {
container.listener(event);
}
if (container.limit > 0) {
container.limit--;
}
if (container.limit == 0) {
removeIndexes.add(i);
}
if (event is CancelledEvent && event.isCancelled()) {
break;
}
}
removeIndexes.forEach(_containers[name]!.removeAt);
}
}