dart:函数添加async和不添加async的区别
一,代码:
说明:
使用async关键字,你可以在函数内部使用await关键字来等待另一个异步操作的完成,而不会阻塞当前线程的执行。
Future<String> getMyName() {
//await Future.delayed(Duration(seconds: 2)); //函数内部不能使用await
return Future.delayed(Duration(seconds: 2), () => '老孟');
}
Future<String> getMyName2() async{
//await Future.delayed(Duration(seconds: 2));
var name2 = await Future.delayed(Duration(seconds: 2), () => '老孟');
print("getMyName2:"+name2.toString());
return name2;
}
void myclick() async{
//正确得到Future类型返回
getMyName().then((String value) {
print('name:$value'); //name:老孟
});
var name2 = await getMyName();
print('name2:$name2'); //name2:老孟
//正确得到Future类型返回
getMyName2().then((String value) {
print('name2b:$value'); //name:老孟
});
var name2c = await getMyName2();
print('name2c:$name2c'); //name2:老孟
二,运行结果:
I/flutter (17391): name:老孟
I/flutter (17391): name2:老孟
I/flutter (17391): getMyName2:老孟
I/flutter (17391): name2b:老孟
I/flutter (17391): getMyName2:老孟
I/flutter (17391): name2c:老孟
浙公网安备 33010602011771号