done property
A future which is completed when the stream controller is done sending events.
This happens either when the done event has been sent, or if the subscriber on a single-subscription stream is canceled.
A stream controller will not complete the returned future until all listeners present when the done event is sent have stopped listening. A listener will stop listening if it is cancelled, or if it has handled the done event. A paused listener will not process the done even until it is resumed, so completion of the returned Future will be delayed until all paused listeners have been resumed or cancelled.
If there is no listener on a non-broadcast stream, or the listener pauses and never resumes, the done event will not be sent and this future will never complete.
Implementation
@override
Future<Object?> get done => _initializeLazy()!.done;