
在Dart中导入库
在Dart中使用异步,需要先导入异步库。

Future
异步库包含一个名为Future的类,Future是基于观察者模式的。如果您熟悉Javascript中的Rxjs或Promises,那么理解起来会很容易。
简单来说,Future定义的是“未来”发生的事情,也会在未来某个时刻返回一个值给我们。让我们看看如何使用Future。
Future是一个泛型类型,即 Future ,你必须指定返回值的类型。

在main中,我们调用getAJoke函数,该函数返回 Future。我们通过调用then函数来订阅Future,这些函数注册了一个回调,当Future发出值时调用它。我们还注册了一个catchError来处理在执行Future期间发生的任何异常。在我们的示例中,我们没有发生任何异常。
以下是发生异常的示例。



但是,如果我们有一个Future,我们想先执行它,然后再执行print语句。这就需要使用 async/await 了。
Async/Await

首先在第3行的main函数的大括号之前添加async关键字。
然后我们在调用getAJoke函数之前添加await关键字,它的作用是等待从Future返回结果。后边的代码也会一直等待着被执行。
我们将代码包装在 try/catch 块中,来捕获任何异常(之前使用catchError回调来捕获)。要使用关键字await,就必须使用async关键字标记该函数,否则它将无法工作。
总结
这就是本教程系列的内容,更多语法细节和功能特性,强烈推荐阅读官方语言文档。接下来让我们一起探索Flutter开发之旅。

