【发布时间】:2019-12-18 09:39:57
【问题描述】:
void main() {
methodA();
methodB();
methodC('main');
methodD();
}
methodA(){
print('A');
}
methodB() async {
print('B start');
await methodC('B');
print('B end');
}
methodC(String from) async {
print('C start from $from');
Future((){
print('C running Future from $from');
}).then((_){
print('C end of Future from $from');
});
print('C end from $from');
}
methodD(){
print('D');
}
打印结果如下:
A
B start
C start from B
C end from B
C start from main
C end from main
D
B end
C running Future from B
C end of Future from B
C running Future from main
C end of Future from main
我不明白为什么C start from main 和C end from main 在B end 之前打印??
这就是为什么print('B end')还没有被执行,methodC('main')已经被执行了。
我以为我理解async/await,但直到我遇到这段代码。我希望得到帮助
【问题讨论】:
标签: asynchronous flutter dart