13.你会处理Dart中的异步任务吗?

目录传送门:《Flutter快速上手指南》先导篇

在 Dart 中,可以使用 asyncawait 关键字来处理异步任务。

这是一种很现代化的异步处理方式,它可以让你的异步代码看起来像同步代码一样:

task() async {
    var entrypoint = await findEntrypoint();
    print(entrypoint);
}
复制代码

在上面这个 异步函数 中,进行了一个耗时任务 findEntrypoint(),然后调用了 print(entrypoint) 输出耗时任务返回结果。

这个过程看起来就像一个同步过程一样。

async

async 关键字是用来标识一个函数是异步函数,该类函数会有一个返回值,其类型为 Future

Future<T> login() async {
    //..
}
复制代码

创建一个异步函数很简单,只需要给函数加个 async 关键字就行。

其中,范型 T 具体是什么,取决于你的异步函数 return 的是什么。

如果没有 returnT 就是 null

你可以在通过 Future 的 then() 切换到同步中,然后获取返回值。

Future<T> login = login();
login.then((t){
    //..
})
复制代码

或者,你也可以在异步函数中,通过 await 关键字获取。

await

await 关键字被用于修饰一个异步函数,它表示逻辑执行到这,需要等待异步函数执行完成,返回结果了才能接着执行。

此时,异步函数(async修饰的函数)的返回值类型就是 Future<T> 中的 T,你无需在从 Future 中获取。

Future<String> task(String path) async {
  String r = await getFileContent(path);
  return r;
}
复制代码

上面例子中异步函数 getFileContent() 直接返回了所需的 String 类型结果。

⚠️ 注意,await 关键字只能在异步函数中使用,即如果你在一个函数中使用了 await,那这个函数就需要被变为异步函数。

目录传送门:《Flutter快速上手指南》先导篇

如何找到我?

传送门:CoorChice 的主页

传送门:CoorChice 的 Github


转载于:https://juejin.im/post/5c90c2cae51d45509256ba5f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值