Mi a Future konstruktorok Flutterben, és hogyan kell őket használni?
sobes.tech MI
Válasz az MI-től
A Flutterben a Future konstruktorokat arra használják, hogy Future objektumokat hozzanak létre, amelyek egy aszinkron művelet eredményét képviselik, amely a jövőben befejeződhet. Segítenek az aszinkron kód végrehajtási folyamatának kezelésében.
Fő konstruktorok:
-
Future(): Létrehoz egy Future-t, amely a jelenlegi mikrofeladat befejezése után fog végrehajtódni. Hasznos a feladatok ütemezéséhez a jelenlegi eseményciklus után.
Future(() { // Aszinkron művelet print('Ez a jelenlegi mikrofeladat után fut.'); }); -
Future.delayed(Duration duration, [FutureOr<T> computation()]): Létrehoz egy Future-t, amely a megadott késleltetés után fog végrehajtódni. A
computationegy opcionális függvény, amely a késleltetés után fut és egy Future értéket ad vissza.Future.delayed(Duration(seconds: 2), () { print('Ez 2 másodperc múlva fut.'); }); -
Future.value([FutureOr<T>? value]): Már befejezett Future-t hoz létre a megadott értékkel. Ha az érték egy másik
Future, akkor ez a konstruktor várja annak befejezését.Future<int>.value(123).then((value) => print('Érték: $value')); -
Future.error(Object error, [StackTrace? stackTrace]): Már befejezett Future-t hoz létre hibával.
Future.error('Valami rosszul ment').catchError((error) => print('Hiba: $error')); -
Future.sync(FutureOr<T> computation()): Szinkron módon azonnal végrehajtó Future-t hoz létre. Ha a számítás Future-et ad vissza, ez a konstruktor várja annak befejezését.
Future.sync(() { print('Ez szinkron módon fut.'); return 456; }).then((value) => print('Szinkron érték: $value'));
Az eredmény kezelése then, catchError és whenComplete segítségével:
Future.delayed(Duration(seconds: 1), () => 'Helló, Világ!')
.then((result) {
// Sikeres befejezés esetén
print(result);
})
.catchError((error) {
// Hiba esetén
print('Hiba történt: $error');
})
.whenComplete(() {
// Függetlenül a siker vagy hiba eredményétől
print('Future befejeződött.');
});