Čo sú konštruktory Future vo Flutteri a ako ich používať?
sobes.tech AI
Odpoveď od AI
Konštruktory Future v Flutter sa používajú na vytváranie objektov Future, ktoré predstavujú výsledok asynchrónnej operácie, ktorá môže byť vykonaná v budúcnosti. Pomáhajú riadiť tok vykonávania asynchrónneho kódu.
Hlavné konštruktory:
-
Future(): Vytvára Future, ktorý bude vykonaný po dokončení aktuálnej mikroúlohy. Je užitočný na plánovanie úloh po ukončení aktuálneho cyklu udalostí.
Future(() { // Asynchrónna operácia print('Toto beží po aktuálnej mikroúlohe.'); }); -
Future.delayed(Duration duration, [FutureOr<T> computation()]): Vytvára Future, ktorý bude vykonaný po zadanom oneskorení.
computationje voliteľná funkcia, ktorá sa vykoná po oneskorení a vráti hodnotu Future.Future.delayed(Duration seconds: 2), () { print('Toto beží po 2 sekundách.'); }); -
Future.value([FutureOr<T>? value]): Vytvára Future, ktorý je už ukončený s uvedenou hodnotou. Ak je hodnota iný
Future, tento konštruktor bude čakať na jeho ukončenie.Future<int>.value(123).then((value) => print('Hodnota je: $value')); -
Future.error(Object error, [StackTrace? stackTrace]): Vytvára Future, ktorý je už ukončený s uvedenou chybou.
Future.error('Niečo sa pokazilo').catchError((error) => print('Chyba: $error')); -
Future.sync(FutureOr<T> computation()): Vytvára Future, ktorý vykonáva výpočet synchronne okamžite. Ak výpočet vracia Future, tento konštruktor bude čakať na jeho ukončenie.
Future.sync(() { print('Toto beží synchronne.'); return 456; }).then((value) => print('Synchronná hodnota: $value'));
Použitie then, catchError a whenComplete na spracovanie výsledku:
Future.delayed(Duration seconds: 1), () => 'Ahoj, svet!')
.then((result) {
// Vykoná sa pri úspešnom ukončení
print(result);
})
.catchError((error) {
// Vykoná sa pri chybe
print('Vyskytla sa chyba: $error');
})
.whenComplete(() {
// Vykoná sa bez ohľadu na úspech alebo chybu
print('Future je ukončené.');
});