description

# forEach method Null safety

Future forEach (

1. void action(
   1. T element
   )

)

Executes `action` on each element of this stream.

Completes the returned Future when all elements of this stream have been processed.

If this stream emits an error, or if the call to `action` throws, the returned future completes with that error, and processing stops.

## Implementation

    Future forEach(void action(T element)) {
      _Future future = new _Future();
      StreamSubscription<T> subscription =
          this.listen(null, onError: future._completeError, onDone: () {
        future._complete(null);
      }, cancelOnError: true);
      subscription.onData((T element) {
        _runUserCode<void>(() => action(element), (_) {},
            _cancelAndErrorClosure(subscription, future));
      });
      return future;
    }