Future<T>.value 构造函数
- FutureOr<
T> ? value
创建一个完成于 value
的 Future。
如果 value
是一个 Future,则创建的 Future 等待 value
Future 完成,然后以相同的结果完成。由于 value
Future 可以以错误完成,因此由 Future.value 创建的 Future 也可以以错误完成,尽管名称暗示了不同的含义。
如果 value
不是 Future,则创建的 Future 以 value
的值完成,相当于 new Future<T>.sync(() => value)
。
如果省略了 value
或 null
,则通过 value as FutureOr<T>
将其转换为 FutureOr<T>
。如果 T
不是可空类型,则必须提供非 null
的 value
,否则构建会抛出异常。
使用 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);
}