close method
Closes the event
and state
Streams
.
This method should be called when a Bloc
is no longer needed.
Once close
is called, events
that are add
ed will not be
processed.
In addition, if close
is called while events
are still being
processed, the Bloc
will finish processing the pending events
.
Implementation
@override
@mustCallSuper
Future<void> close() async {
await _eventController.close();
for (final emitter in _emitters) emitter.cancel();
await Future.wait<void>(_emitters.map((e) => e.future));
await Future.wait<void>(_subscriptions.map((s) => s.cancel()));
await _transitionSubscription?.cancel();
return super.close();
}