【发布时间】:2022-01-07 00:23:47
【问题描述】:
我在 Dart 中有这样的代码:
Future<void> dataProcessAsync() async {
await Future.delayed(Duration(seconds: 2));
print("Process Completed!");
}
void main() {
print("Process 1");
print("Process 2");
dataProcessAsync();
print("Process 3");
print("Process 4");
}
一切正常且异步。结果如预期 (流程 1 - 流程 2 - 流程 3 - 流程 4 - 流程已完成!)
但是当我这样写代码时:
Future<void> dataProcessAsync() async {
for(int i = 1; i <= 10000000000; i++){}
print("Process Completed!");
}
void main() {
print("Process 1");
print("Process 2");
dataProcessAsync();
print("Process 3");
print("Process 4");
}
它不能异步工作。然后它等待了 dataProcessAsync() 很长时间 继续流程 3。(流程 1 - 流程 2 - 流程已完成!- 流程 3 - 流程 4)
谁能告诉我发生了什么以及如何解决这个问题?
【问题讨论】:
标签: dart asynchronous async-await