mergeAll<R> static method

Cancelable<Iterable<R>> mergeAll<R>(
  1. Iterable<Cancelable<R>> cancelables
)

Implementation

static Cancelable<Iterable<R>> mergeAll<R>(
    Iterable<Cancelable<R>> cancelables) {
  final resultCompleter = Completer<Iterable<R>>();
  Future.wait(cancelables).then((value) {
    resultCompleter.complete(value);
  }, onError: (Object e) {
    _completeError(completer: resultCompleter, e: e);
  });
  return Cancelable(resultCompleter, onCancel: () {
    for (final cancelable in cancelables) {
      cancelable.cancel();
    }
    _completeError(completer: resultCompleter, e: CanceledError());
  }, onResume: () {
    for (final cancelable in cancelables) {
      cancelable.resume();
    }
  }, onPause: () {
    for (final cancelable in cancelables) {
      cancelable.pause();
    }
  });
}