waitData method
Waits with a timeout
for new data.
Implementation
Future<bool> waitData({Duration? timeout}) {
// If disposed, new data won't arrive:
if (isDisposed) return Future.value(false);
timeout ??= Duration(seconds: 1);
var completer = Completer<bool>();
completer.future.timeout(timeout, onTimeout: () {
if (!completer.isCompleted) {
completer.complete(false);
}
return false;
});
_waitingData.add(completer);
return completer.future;
}