【发布时间】:2020-01-14 22:11:09
【问题描述】:
我正在制作一个使用异步的 Flutter 应用程序,但它不像我理解的那样工作。所以我对 dart 中的 async 和 await 有一些疑问。这是一个例子:
Future<int> someFunction() async {
int count = 0;
for (int i=0; i< 1000000000;i ++) {
count+= i;
}
print("done");
return count;
}
Future<void> test2() async {
print("begin");
var a = await someFunction();
print('end');
}
void _incrementCounter() {
print("above");
test2();
print("below");
}
test2() 函数需要很长时间才能完成。正确的?所以我想要的是当 test2 让他的工作一直运行到完成时,一切都会继续运行而不是等待 test2()。
当我运行 _incrementCounter() 函数时,它会显示结果:
从头到尾完成
问题是它没有立即显示“下面”,而是等到 someFunction() 完成。
这是我想要的结果:
上面开始下面完成结束
【问题讨论】:
-
你可以看看stackoverflow.com/questions/49537996/future-async-await-in-dart/…。
someFunction使用async,但是没有await,所以这是一个假的async函数,但是同步。
标签: dart async-await