异步编程之 async 和 await
Posted 熊喵先生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异步编程之 async 和 await相关的知识,希望对你有一定的参考价值。
继续 Dart 异步编程的第五篇 async 和 await。
async 和 await 是 Dart 异步编程用于简化异步 API 操作的两个关键字。它的作用就是能够将异步的代码使用同步的代码结构实现。相信学习过之前的 Future 和 Stream 的文章就知道,对于最终返回的值或者是异常都是采用“异步回调方式”。
然而 async-await 就是为了简化这些异步回调的方式,通过语法糖的简化,将原来异步回调方式写成简单的同步方式结构。需要注意的是:使用 await 关键字必须配合 async 关键字一起使用才会起作用。本质上 async-await 是相当于都 Future 相关 API 接口的另一种封装,提供了一种更加简便的操作 Future 相关 API 的方法。
1. 为什么需要 async-await
通过学习之前异步编程中的 Future 我们知道,Future 一般使用 then 和 catchError 可以很好地处理数据回调和异常回调。这实际上还是一种基于异步回调的方式,如果异步操作依赖关系比较复杂需要编写回调代码比较繁杂,为了简化这些步骤 async-await 关键字通过同步代码结构来实现异步操作,从而使得代码更加简洁和具有可读性,此外在异常处理方式也会变得更加简单。
1.1 对比实现代码
Future 实现方式:
void main()
_loadUserFromSQL().then((userInfo)
return _fetchSessionToken(userInfo);
).then((t
以上是关于异步编程之 async 和 await的主要内容,如果未能解决你的问题,请参考以下文章
异步编程之Async,Await和ConfigureAwait的关系
.NET4.5新特性之异步编程(Async和Await)的使用