nextEvent method
Implementation
Future<T> nextEvent() {
final Completer<T> completer = Completer<T>();
StreamSubscription<T>? subscription;
subscription = listen(
(event) {
completer.complete(event);
subscription?.cancel();
},
onError: (error) {
completer.completeError(error);
subscription?.cancel();
},
onDone: () {
if (!completer.isCompleted) {
completer.completeError(StateError("Stream was done without emitting any events."));
}
},
cancelOnError: true,
);
return completer.future;
}