waitData method

Future<bool> waitData({
  1. Duration? timeout,
})

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;
}