
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.5 Dart 的异步操作与导入类
Dart 是支持异步操作的,例如在网络请求等情况下,我们就需要用到异步操作。Dart 中使用async 和await 关键字来标识异步操作,不过需要注意,async 和await 要成对出现,示例如下。

除了async 和await,Dart 里也提供了Future 对象,同样可以进行异步操作。我们可以让异步函数返回Future 对象,然后通过这个Future 对象来进一步获取结果,执行下一步逻辑,这有点类似于RxJava 这种函数式编程方式。这种方式功能非常强大,使用起来也非常方便,示例如下。


在await 表达式中,返回值通常是一个Future 对象,如果返回值不是Future 对象,则Dart会自动将该值放到Future 中返回。
在Dart 中导入类也比较简单,通常使用import 关键字来实现,示例如下。

如果我们想自己创建一个类并希望它被别人引用,这时可以用library 来声明类,示例如下。


如果想声明某个变量、常量、方法,使其不能被外部调用,只需要在其名字前加上下画线(_)前缀即可。Dart 的基础语法知识基本介绍完毕,当然这其中还有很多细节,感兴趣的读者可以自行深入研究。