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;
}