Mis on Future-konstruktorid Flutteris ja kuidas neid kasutada?
sobes.tech AI
Vastus AI-lt
Flutteri Future-konstruktorid kasutatakse Future objektide loomiseks, mis esindavad asünkroonse operatsiooni tulemust, mis võib tulevikus toimuda. Need aitavad hallata asünkroonse koodi täitmise voogu:
Peamised konstruktorid:
-
Future(): Loob
Future, mis täidetakse pärast praeguse mikrotöö lõpetamist. Kasulik plaanides ülesandeid pärast praeguse sündmuste tsükli lõppu.Future(() { // Asünkroonne operatsioon print('See käivitub pärast praegust mikrotööd.'); }); -
Future.delayed(Duration duration, [FutureOr<T> computation()]): Loob
Future, mis täidetakse pärast määratud viivitust.computationon valikuline funktsioon, mis täidetakse pärast viivitust ja tagastabFutureväärtuse.Future.delayed(Duration seconds: 2), () { print('See käivitub pärast 2 sekundit.'); }); -
Future.value([FutureOr<T>? value]): Loob
Future, mis on juba lõpetatud määratud väärtusega. Kui väärtus on teineFuture, siis see ootab selle lõpetamist.Future<int>.value(123).then((value) => print('Väärtus on: $value')); -
Future.error(Object error, [StackTrace? stackTrace]): Loob
Future, mis on juba lõpetatud määratud veaga.Future.error('Midagi läks valesti').catchError((error) => print('Viga: $error')); -
Future.sync(FutureOr<T> computation()): Loob
Future, mis täidab arvutuse sünkronselt kohe. Kui arvutus tagastabFuture, siis see ootab selle lõpetamist.Future.sync(() { print('See töötab sünkronselt.'); return 456; }).then((value) => print('Sünkrone väärtus: $value'));
Kasutamine then, catchError ja whenComplete tulemuse töötlemiseks:
Future.delayed(Duration seconds: 1), () => 'Tere, maailm!')
.then((result) {
// Täidetakse edukalt lõpetamisel
print(result);
})
.catchError((error) {
// Täidetakse vea korral
print('Viga: $error');
})
.whenComplete(() {
// Täidetakse sõltumata edukusest või veast
print('Future lõpetas.');
});