结论
- 异步函数:使用aync关键字标记的函数,其返回值是一个范型化的Future对象,这样的函数我们称之为异步函数
- 有两种方式调用异步函数:
- 直接调用。直接调用的返回结果是一个范型化的Futrue类,范型参数的类型是异步函数的返回的值的类型,即:假设异步函数最后的语句是return ‘a’;,那么该函数的返回类型为Future。要想最终获得异步函数真正的返回值,还要对返回的Future类型的对象调用then方法,因此一般把直接调用和调用then方法连起来写,即:
someAsyncFunc().then(callback);
- 使用await同步调用。使用await调用异步函数时,程序会等待异步函数执行完成之后,直接将真正的返回值返回,然后执行接下去的语句。
- 什么时候使用async关键字?
- 如果当前函数体中使用了await关键字,则必需要在当前函数的签名中使用async关键字
- 比较耗时的、且其他代码调用时可能不需要等待其返回的函数,可以使用async关键字
验证
程序
import 'dart:io';
void main() async {
print('${DateTime.now()}:开始调用第一个异步方法'