async、await的基本用法

213 阅读1分钟

async、await的基本用法

关键字asyncawait是Dart语言异步支持的一部分。

  • async:用来表示函数是异步的,定义的函数会返回一个 Future 对象。
  • await:后面跟着一个 Future,表示等待该异步任务完成后才会继续往下执行。await只能出现在异步函数内部,能够让我们可以像写同步代码那样来执行异步任务而不使用回调的方式。

await关键字使用必须满足两个条件:

  • 当前函数必须是异步函数(即在函数头中包含关键字async的函数);
  • await修饰的任务必须是异步任务
String _data = '0';

void main() {
  getData2();
  print('4-做其他事');
}

void getData2() async {
  print('1-开始data=$_data');

  // 1.后面的操作必须是异步才能用await
  // 2。当前函数必须是异步函数
  await Future(() {
    for (int i = 0; i < 100000000; i++) {
      _data = '网络数据';
    }
    print('2-结束data=$_data');
  });

  print('3-结束data=$_data');
}

运行结果:
flutter: 1-开始data=0
flutter: 4-做其他事
flutter: 2-结束data=网络数据
flutter: 3-结束data=网络数据
复制代码
  1. getData2()被async关键词修饰,变为异步函数。 所以任务4先执行.
  2. 任务2await关键词修饰,等待该异步任务完成后才会继续往下执行任务3


作者:Akironer
链接:juejin.cn/post/697613… 来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。