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