异步编程可以使我们在开发中摆脱回调地狱。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);
});
}