Dart 异步编程

Dart 异步编程

我们在开发的过程中经常会遇到耗时的任务,比如网络请求等。对于这些耗时任务,需要使用异步处理,否则会导致卡顿。Dart中的异步编程可以使用Futureasync来实现。酷客教程的Dart 异步支持也对异步做了简单介绍,请读者参考。

1.使用Future实现异步
可以使用Future实现异步编程,Future是Dart内置的。用法如下:

var future = Future(() {
      print('这是一个耗时任务');
});

创建一个延迟异步任务,代码如下:

//延迟1秒执行
var future1 = Future.delayed(Duration(seconds: 1), () {
  print('这是一个耗时任务');
});

两个异步任务都执行完毕后执行回调,用法如下:

Future.wait([future, future1]).then((values){
  //future和future1都执行完毕后
});

then是Future执行结束后的回调,then可以有多个,还可以使用catchError捕获异常,用法如下:

Future(() {}).then((value) {
  print('$value');
}).then((value) {
  print('$value');
}).catchError((error) {
  print('$error');
});

2.使用async实现异步
async和await是Dart1.9版本加入的关键字,可以帮助我们编写更简洁的异步代码,用法如下:

void doWork() async {
    print('这是一个耗时任务');
  }

只需在函数后面加上“async”关键字。async和await基本同时出现,await必须在async的方法中,用法如下:

doWork() async {
return await "";
  }

被async修饰的方法会返回一个Future作为返回值,执行到await时会暂停执行该方法下面的代码,直到Future任务执行完成。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!