clear method
移除广播系统中的指定 key
类型的所有接收者,以及该类型的粘性广播。
key
- 类型
Remove all receivers of the specified key
type in the broadcast system and sticky broadcasts of that type.
key
- type
Implementation
void clear(String key) {
if (_map == null) return;
_Notifier? remove = _map.remove(key);
if (remove?.hasListeners ?? false) {
remove?.listeners?.forEach((receiver) {
_receiverCache.forEach((key, value) {
value.remove(receiver);
});
});
List<Object?> needRemove = [];
_receiverCache.forEach((k, value) {
if (value.isEmpty) needRemove.add(k);
});
needRemove.forEach((k) {
// print('needRemove = $k');
_receiverCache.remove(k);
});
// print('size = ${_receiverCache.length}');
}
remove?.dispose();
_stickyMap.remove(key);
}