add<T> method

Future<T> add<T>(
  1. Future<T> closure()
)

Adds the future-returning closure to the queue.

It will be executed after futures returned by preceding closures have been awaited.

Will throw an exception if the queue has been cancelled.

Implementation

Future<T> add<T>(Future<T> Function() closure) {
  if (isCancelled) throw QueueCancelledException();
  final completer = Completer<T>();
  _nextCycle.add(_QueuedFuture<T>(closure, completer, timeout));
  _updateRemainingItems();
  unawaited(_process());
  return completer.future;
}