Dart异步执行

时间:2014-08-22 10:34:29

标签: dart dart-async

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()的调用。我是对的吗?

1 个答案:

答案 0 :(得分:2)

main()“同步执行的当前线程”结束时开始 readAsString的一部分是同步执行的,但因为它返回一个Future,很明显在readAsString内的某个地方调用了一些异步操作。这意味着它计划在以后执行。 完成main后,将处理事件队列并执行下一个计划的异步操作。