Dart系列(十三) async和await方法


发文时间:2021年03月07日 21:14:52     编辑:Aaron      标签:记录Dart语言的学习历程 417


Dart是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。

关于定义

/*
async 声明让方法成为 异步
await 可以让程序处理这个方法以外的方法,等这个方法处理好了 会返回对应的值或操作
 */


/*
定义一个异步方法
 */
getInfo() async{
  dynamic a= '我是一个参数';
  return a;
}


//定义一个方法去调用 异步方法
main() async{

  var c= await getInfo();//调用异步方法一定要 声明await  (意思就是执行这个方法 可以不用等他执行完 我们可以先执行其他的 等他好了 他自己会输出)
  print(c);

}

案例

/*
async 声明让方法成为 异步
await 是等待异步方法执行完成
 */

import 'dart:io';

//定义一个方法去调用 异步方法
main() {
  _startMethod();
  print("C开始");

  print('在处理main里剩余的方法');
}


Future _startMethod() async{
  print("A开始执行这个方法~");
  print(await getHttp());
  print("A执行结束");
}

Future<String> getHttp() async {
  await sleep(Duration(seconds: 5));// 所标记的方法是等待类型的,那么等待期间可以继续运行外层的代码。 
  //(就是这个方法在处理了  然后可以让程序处理这个方法以外的方法,等这个方法处理好了 会返回对应的值或操作)
  return "请求到的数据:这里等待了5秒钟" ;
}


/*

输出顺序为
1  =  A开始执行这个方法 - 因为一开始就是调用方法来着
2 =  C开始  - 因为_startMethod();方法是异步方法 所以 另外一条线程去处理了,所以就执行到了C 开始
3=  在处理main里剩余的方法
 

若无特殊说明,此文章为博主原创。
写稿不易,如需转载,请注明出处: https://www.aaroner.cn/art/44.html




SITE MAP

  FOLLOW US