为什么“等待”不起作用?
Future<void> f1() async{
Future.delayed(Duration(seconds:2), (){
print('f1');
});
}
void main() async{
print('start');
await f1();
print('end');
}
输出
start
end
f1
但是
await
在下一个代码中工作。
Future<void> f1() async{
return Future.delayed(Duration(seconds:2), (){
print('f1');
});
}
void main() async{
print('start');
await f1();
print('end');
}
输出
start
f1
end
为什么????
我不明白......
因为在第一个代码块中
f1()
被等待,而它的子 Future
则没有。第二次它就回来了。如果你想等延迟的Future
,也可以await
。像这样
Future<void> f1() async{
await Future.delayed(Duration(seconds:2), (){
print('f1');
});
}
void main() async{
print('start');
await f1();
print('end');
}