!
之后的_cachedValueFuture
运算符是什么?
Future<T> fetch(Future<T> Function() callback) async {
if (_cachedStreamSplitter != null) {
throw StateError('Previously used to cache via `fetchStream`');
}
if (_cachedValueFuture == null) {
_cachedValueFuture = callback();
await _cachedValueFuture;
_startStaleTimer();
}
return _cachedValueFuture!;
}
答案 0 :(得分:2)
在下一版本中,"(not-)null assertion operator"成为Dart的一部分,具有Null安全功能。
_cachedValueFuture
变量的类型为Future<T>?
,表示将来或为空。如果值是!
,则null
运算符将抛出,因此,_cachedValueFuture!
的类型是Future<T>
,这是该函数所需的返回类型。