Future<T>.value 构造函数
- [FutureOr<
T> ? value]
创建一个带有 value
状态的未来。
如果 value
是一个未来,那么创建的未来会等待 value
未来完成,然后使用相同的结果完成。由于一个 value
未来可以完成带有错误,所以通过 Future.value 创建的未来也可能完成带有错误,即使名字似乎暗示了其他意思。
如果 value
不是一个 Future,则创建的未来使用 value
的值完成,相当于 new Future<T>.sync(() => value)
。
如果省略或提供 null
作为 value
,将使用 value as FutureOr<T>
转换为 FutureOr<T>
。如果 T
不是可空的,则必须提供一个非 null
的 value
,否则构建会抛出异常。
使用 Completer 现在创建一个未来并在稍后完成它。
示例
Future<int> getFuture() {
return Future<int>.value(2021);
}
final result = await getFuture();
实现
@pragma("vm:entry-point")
@pragma("vm:prefer-inline")
factory Future.value([FutureOr<T>? value]) {
return new _Future<T>.immediate(value == null ? value as T : value);
}