Future в Dart
Future<T> описывает значение типа T,
которое будет готово позже. Снаружи виден только
дескриптор: сам результат появится после
завершения работы.
Готовое значение можно вернуть сразу через
Future.value - так задают результат без
реальной задержки:
Future<String> load() {
return Future.value("note");
}
Тот же смысл у функции с телом async: она
автоматически оборачивает возвращаемое значение
в Future:
Future<String> load() async {
return "note";
}
Для своего типа в угловых скобках указывают класс. Например, пост с заголовком можно «отдать» из функции так:
class Post {
String title;
Post(this.title);
}
Future<Post> loadPost() async {
return Post("draft");
}
Вызов loadPost() сразу дает
Future<Post>, а не сам Post.
Чтобы прочитать поле, нужен await в
async-контексте.
Объявите Future<String>-функцию
tag() через Future.value со
строкой "io".
Сделайте async-функцию
Future<Employee> loadEmployee(),
которая возвращает Employee с полем
name равным "Ann". Класс
Employee объявите с полем String
name.