Dart 异步函数

Dart 异步函数

异步编程可以使我们在开发中摆脱回调地狱。dart 作为一种新生的语言,很自然的,也有await 和 async,可以顺利地实现异步编程。

为什么要用异步编程

那么为什么要用异步编程呢? 只用同步不能够解决吗?

其实大多情况下同步已经够用了,但是在下面的几种情况下,同步的场景还是有缺陷的。

需要花很长时间从网络上下载数据的情况。
读取数据库的耗时情况。
从文件读取数据的情况。
总结而言,如果某些操作需要花费大量的时间,那么就可以考虑使用异步编程了。

如何使用

async 是方法的描述符,如果要使用 await,则必须配合 async 一起使用 :

Future<函数返回值类型> 函数名称() async {
  var *** = await ****();
}
// await后面一般接着的是Future对象。

示例

Future<String> GetIP() async {
  return Future.delayed(Duration(seconds: 1), () => "127.0.0.1");
}

void main(List<String> args) {
  Future IPFuture = GetIP();
  IPFuture.then((ip) {
    print(ip);
  }).onError((error, stackTrace) {
    print(error);
    print(stackTrace);
  });
}