import 'dart:io';
import 'dart:async';
void printDailyNewsDigest() {
File file = new File("dailyNewsDigest.txt");
Future future = file.readAsString();
future.then((content) {
print(content);
});
}
void main() {
printDailyNewsDigest();
printWinningLotteryNumbers();//does something synchronous
printWeatherForecast();//does something synchronous
printBaseballScore();//does something synchronous
}
我有一个关于Dart和D中异步操作的简单问题 特别是上面代码中的异步操作。什么时候 异步执行从上面的代码开始?异步 执行从file.readAsString()调用开始,或者开始执行 何时处理主要退出和任务队列?文档 我读到的这一点有点模糊。
如果我不得不猜测,我会猜测异步执行会开始 对file.readAsString()的调用。我是对的吗?
答案 0 :(得分:2)
当main()
“同步执行的当前线程”结束时开始
readAsString
的一部分是同步执行的,但因为它返回一个Future,很明显在readAsString
内的某个地方调用了一些异步操作。这意味着它计划在以后执行。
完成main
后,将处理事件队列并执行下一个计划的异步操作。