firstOrNull property Null safety
A future which completes with the first event of this stream, or with
null
.
This stream is listened to, and if it emits any event, whether a data
event or an error event, the future completes with the same data value or
error. If the stream ends without emitting any events, the future is
completed with null
.
Implementation
Future<T?> get firstOrNull {
var completer = Completer<T?>.sync();
final subscription = listen(null,
onError: completer.completeError,
onDone: completer.complete,
cancelOnError: true);
subscription.onData((event) {
subscription.cancel().whenComplete(() {
completer.complete(event);
});
});
return completer.future;
}