Flutter完全开发手册
  • Flutter Future异步操作多个任务、异常处理

    本节主要介绍了Flutter Future异步操作,future是Future类的对象,其表示一个T类型的异步操作结果。如果异步操作不需要结果,则future的类型可为Future

    一、Flutter Future异步

    Dart是一个单线程语言,当其遇到有延迟的运算(比如IO操作、延时执行)时,线程中按顺序执行的运算就会阻塞,可以使用异步操作使程序在等待一个耗时操作完成时继续处理其他工作。在Dart中,可以使用Future对象来进行异步操作。

    Future 类,是个泛型类,可以指定类型。如果没有指定,则 Future 会执行动态的推导类型。表示一个 T 类型的异步操作结果。

    Future对象表示异步操作的结果,我们通常通过 .then() 来处理返回的结果。

    创建Future的方式:

    1、通过Future构造方法,创建 Future Future.value():

    2、返回一个指定值的Future Future.delayed():

    3、返回一个延时执行的Future

    创建Future:

    
    // Future构造方法,来创建Future
    // getStringNum 这是创建Future的对象
      Future getStringNum = Future(() {
        var num = 0;
        for (var i = 0; i < 10000; i++) {
          num += i;
        }
        return "result:${num}";
      });
    
    Future getStringNum() {
        // 1、Future.value:返回一个指定值的Future
        // return Future.value("你好Future");
    
        // 2、Future.delayed   返回一个延时执行的Future
        // return Future.delayed(const Duration(seconds: 3), () {
        //   return "你好Future";
        // });
    
        // 3、返回异步的function
        // return  Future((){
        //   return "你好Future";
        // });
    
        // 4、抛出异常
       return  Future((){
          return Future.error(Exception("this is error"));
        });
     }