toSet method

Future<Set<T>> toSet ()

Collects the data of this stream in a Set.

Creates a Set<T> and adds all elements of the stream to the set. in the order they arrive. When the stream ends, the returned future is completed with that set.

The returned set is the same type as returned by new Set<T>(). If another type of set is needed, either use forEach to add each element to the set, or use toList().then((list) => new SomeOtherSet.from(list)) to create the set.

If the stream contains an error, the returned future is completed with that error, and processing stops.

Implementation

Future<Set<T>> toSet() {
  Set<T> result = new Set<T>();
  _Future<Set<T>> future = new _Future<Set<T>>();
  this.listen(
      (T data) {
        result.add(data);
      },
      onError: future._completeError,
      onDone: () {
        future._complete(result);
      },
      cancelOnError: true);
  return future;
}