Конструктор sync
Конструктор sync класса Future создает
Future, который уже завершен значением или ошибкой.
В первый параметр мы передаем функцию, которая
выполняется синхронно и возвращает значение
или выбрасывает исключение. Второй необязательный
параметр принимает объект для трассировки стека.
Если функция выбрасывает исключение, Future
завершается с ошибкой, иначе - с результатом.
Синтаксис
Future.sync(computation, [stackTrace])
Пример
Давайте создадим Future, который синхронно
возвращает число 5:
void main()
{
Future<int> res = Future.sync(() {
return 5;
});
res.then((value) {
print(value);
});
}
Результат выполнения кода:
5
Пример
Давайте создадим Future, который синхронно выбрасывает исключение:
void main()
{
Future<int> res = Future.sync(() {
throw Exception('error');
});
res.catchError((error) {
print('Caught: $error');
});
}
Результат выполнения кода:
"Caught: Exception: error"
Пример
Давайте создадим Future, который синхронно возвращает строку и выведем ее длину:
void main()
{
Future<String> res = Future.sync(() {
return 'abcde';
});
res.then((value) {
print(value.length);
});
}
Результат выполнения кода:
5