Future<T>.value 构造函数

Future<T>.value([
  1. FutureOr<T>? value
])

创建一个完成于 value 的 Future。

如果 value 是一个 Future,则创建的 Future 等待 value Future 完成,然后以相同的结果完成。由于 value Future 可以以错误完成,因此由 Future.value 创建的 Future 也可以以错误完成,尽管名称暗示了不同的含义。

如果 value 不是 Future,则创建的 Future 以 value 的值完成,相当于 new Future<T>.sync(() => value)

如果省略了 valuenull,则通过 value as FutureOr<T> 将其转换为 FutureOr<T>。如果 T 不是可空类型,则必须提供非 nullvalue,否则构建会抛出异常。

使用 Completer 现在创建一个 Future 并稍后完成它。

示例

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