Чӣ тавр сохтани 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 завершено.');
});