【发布时间】:2020-12-22 15:29:28
【问题描述】:
我一直在学习 Dart 中的事件循环和异步代码执行。以下是我理解它的工作原理:
- Dart 首先在 main 中运行同步代码。
- 所有已完成的期货都被放入事件队列并按 FIFO 顺序运行。
- 任何微任务事件都会在事件队列中的下一个事件之前得到处理。
我缺少的部分是未完成的未来呢?如果你有这样的东西怎么办:
final myFuture = Future<int>.delayed(
Duration(seconds: 1),
() => 42,
);
在那一秒的延迟中,假设所有同步代码、微任务和事件队列任务都已完成。 Dart 怎么知道它不应该终止程序?未完成的期货是否有一个小持有人?
我不知道我的标题是否准确地反映了我的要求。随意编辑它。
【问题讨论】:
标签: asynchronous dart event-handling future