[Flutter/Dart] 关于 dart 异步任务执行顺序的问题
資深大佬 : kerb15 64
import 'dart:async'; main() async{ print("main begin"); a(); print("main end"); } a() async { print("a begin"); await b(); print("a end"); } b() async { print("b begin"); await c(); print("b end"); } Future c() { return new Future(() { print("c"); }); }
上面这段代码的输出结果是:
main begin
a begin
b begin
main end
c
b end
a end
main end 提前执行了,我的理解是,在程序走到 b 函数里面时,一直是在当前线程的,然后遇到 await 语句,等待 c 函数执行完成,所以应该是 c 函数执行完再继续进行下去,请问这样理解有问题吗?
大佬有話說 (1)