last 属性

Future<T> last

此流的最后一个元素。

如果此流发出错误事件,则返回的future以该错误完成,处理停止。

如果此流为空(完成事件是第一个事件),则返回的future以错误完成。

实现

Future<T> get last {
  _Future<T> future = new _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;
        }
        try {
          throw IterableElementError.noElement();
        } catch (e, s) {
          _completeWithErrorCallback(future, e, s);
        }
      },
      cancelOnError: true);
  return future;
}