description

# last property

Future<T> get last

The last element of this stream.

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

If this stream is empty (the done event is the first event), the returned future completes with an error.

## Implementation

    Future<T> get last {
      @pragma('vm:awaiter-link')
      _Future<T> future = _Future<T>();
      late T result;
      bool foundResult = false;
      listen(
        (T value) {
          foundResult = true;
          result = value;
        },
        onError: future._completeError,
        onDone: () {
          if (foundResult) {
            future._complete(result);
            return;
          }
          var stack = StackTrace.current;
          var error = IterableElementError.noElement();
          _trySetStackTrace(error, stack);
          _completeWithErrorCallback(future, error, stack);
        },
        cancelOnError: true,
      );
      return future;
    }