Sobes.tech
Middle

Ինչ է Flutter-ի Future կոնստրուկտորները և ինչպես օգտագործել դրանք։

sobes.tech AI

Պատասխան AI-ից

Flutter- ում Future կոնստրուկտորները օգտագործվում են 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 ավարտվեց։');
    });