Dart 编程中的异步和等待
Async和Await关键字用于提供一种声明方式来定义异步函数并使用其结果。
在异步的关键字用来当我们要声明一个功能和异步的await关键字仅用于异步功能。
语法
void main() async { .. }
如果函数具有声明的返回类型,则将Future
Futuremain() async { .. }
最后,当我们想等待异步函数完成时,我们使用await关键字。
await someAsynchronousFunction()
示例
让我们考虑一个例子,我们在async关键字的帮助下声明main函数,然后使用await关键字等待异步结果。
Future输出结果printDelayedMessage() { return Future.delayed(Duration(seconds: 4), () => print('Delayed Output.')); } void main() async { await printDelayedMessage(); //将阻塞输出直到异步结果 print('First output ...'); }
Delayed Output. First output ...
示例
让我们考虑一个更完整的示例,其中我们同时使用async和await关键字。
考虑下面显示的例子-
void main() async { var userEmailFuture = getUserEmail(); //注册回调 await userEmailFuture.then((userEmail) => print(userEmail)); print('Hello'); } //计算未来的方法 Future输出结果getUserEmail() { //模拟长时间的网络通话 return Future.delayed(Duration(seconds: 4), () => "mukul@nhooo.com"); }
mukul@nhooo.com Hello