Flutter的Future、FutureBuilder理解

Flutter进阶篇(4)-- Flutter的Future异步详解
Flutter之FutureBuilder的学习和使用

Future

Flutter的异步操作。

future里面有几个函数:
then:异步操作逻辑在这里写。
whenComplete:异步完成时的回调。
catchError:捕获异常或者异步出错时的回调。

在我们平时开发中我们是这样用的,首先给我们的函数后面加上async关键字,表示异步操作,然后函数返回值写成Future,然后我们可以new一个Future,逻辑前面加上一个await关键字,然后可以使用future.then等操作。下面是一个示例操作,为了方便演示,这里的返回值的null。平时开发中如果请求网络返回的是json,我们可以把泛型写成String;泛型也可能是实体类(entity/domain),不过要做json转实体类相关操作。

Future asyncDemo() async{
    Future future = new Future(() => null);
    await  future.then((_){
      print("then");
    }).then((){
      print("whenComplete");
    }).catchError((_){
      print("catchError");
    });
}

FutureBuilder

Flutter中的异步模型,基于与Future交互的最新快照来构建自身的widget。

  const FutureBuilder({
    Key key,
    this.future,
    this.initialData,
    @required this.builder
  }) : assert(builder != null),
       super(key: key);
  1. FutureBuilder中包含Future和builder。
  2. Future通过异步操作来获取数据,builder中传入上下文context和异步快照AsyncSnapshot。
  3. AsyncSnapshot中包含ConnectionState、data等。builder根据快照的状态返回不同的widget。

你可能感兴趣的:(Flutter的Future、FutureBuilder理解)