Future<T>.value 构造函数

Future<T>.value(
  1. [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 不是可空的,则必须提供一个非 nullvalue,否则构建会抛出异常。

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