Какви са конструкторите Future във Flutter и как да ги използвате?
sobes.tech AI
Отговор от AI
Конструкторите Future във Flutter се използват за създаване на обекти Future, които представляват резултата от асинхронна операция, която може да бъде завършена в бъдеще. Те помагат за управлението на потока на изпълнение на асинхронния код.
Основни конструктори:
-
Future(): Създава
Future, който ще бъде изпълнен след завършването на текущата микрозадача. Полезен е за планиране на задачи след текущия цикъл на събития.Future(() { // Асинхронна операция print('Това се изпълнява след текущата микрозадача.'); }); -
Future.delayed(Duration duration, [FutureOr<T> computation()]): Създава
Future, който ще бъде изпълнен след указаното забавяне.computationе опционална функция, която се изпълнява след забавянето и връща стойностFuture.Future.delayed(Duration(seconds: 2), () { print('Това се изпълнява след 2 секунди.'); }); -
Future.value([FutureOr<T>? value]): Създава вече завършен
Futureс посочената стойност. Ако стойността е другFuture, този конструктор ще чака неговото завършване.Future<int>.value(123).then((value) => print('Стойност: $value')); -
Future.error(Object error, [StackTrace? stackTrace]): Създава вече завършен
Futureс грешка.Future.error('Нещо се обърка').catchError((error) => print('Грешка: $error')); -
Future.sync(FutureOr<T> computation()): Създава
Future, който изпълнява изчислението синхронно веднага. Ако изчислението връщаFuture, този конструктор ще чака неговото завършване.Future.sync(() { print('Това работи синхронно.'); return 456; }).then((value) => print('Синхронна стойност: $value'));
Използване на then, catchError и whenComplete за обработка на резултата:
Future.delayed(Duration(seconds: 1), () => 'Здравей, свят!')
.then((result) {
// Изпълнява се при успешно завършване
print(result);
})
.catchError((error) {
// Изпълнява се при грешка
print('Възникна грешка: $error');
})
.whenComplete(() {
// Изпълнява се независимо от успеха или грешката
print('Future приключи.');
});