戳这里了解《Flutter入门与实战》专栏,持续更新、系统学习!
前言
Dart 语言提供了多种异步编程方式,比如 Future
,比如async
/ await
,再比如 Stream
。如何更好地进行异步编程,我们来看看官方的指引。
相比 Future,优先使用 async / await
异步代码的可读性差和难于调试是臭名昭著的,即便是使用 Future 这样比较好的抽象方式也是一样。 async / await 语法改善了可读性,并且可以在所有 Dart 的控制流的异步代码中使用。下面是一个典型的例子。通过 async / await 语法糖,代码逻辑非常清晰易懂。
// 正确示例
Future<int> countActivePlayers(String teamName) async {
try {
var team = await downloadTeam(teamName);
if (team == null) return 0;
var players = await team.roster;
return players.where((player) => player.isActive).length;
} catch (e) {
log.error(e);
return 0;
}
}
如果使用原始的 Future 方式的话,那代码简直是无法直视