异步编程之 async 和 await

Myth丶恋晨 2022-12-09 05:23 243阅读 0赞

0\_22FkfJ\_X4zfachDO.png

继续 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 实现方式:

  1. void main() {
  2. _loadUserFromSQL().then((userInfo) {
  3. return _fetchSessionToken(userInfo);
  4. }).then((t

发表评论

表情:
评论列表 (有 0 条评论,243人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C# 异步编程async/await

    概述 异步这个概念在不同语境下有不同的解释,比如在一个单核CPU里开启两个线程执行两个函数,通常认为这种调用是异步的,但对于CPU来说它是单核不可能同时运行两个函数,不过