Конструктор Future< T>.value
- [FutureOr<
T>? value]
Создаёт Future, завершённый значением value.
Если value является Future, созданное Future ожидает завершения Future value, а затем завершается тем же результатом. Поскольку Future value может завершиться ошибкой, то и создаваемое с помощью Future.value Future также может завершиться ошибкой, даже если название предполагает обратное.
Если value не является Future, созданное Future завершается значением value значения, эквивалентно new Future<T>.sync(() => value).
Если value опущено или null, оно преобразуется в FutureOr<T> посредством value as FutureOr<T>. Если T не является nullable, то должен быть предоставлен не-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);
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-async/Future/Future.value.html