带你读《深入浅出Dart》十六、事件循环和协程机制(4)https://developer.aliyun.com/article/1348986?groupCode=tech_library
2) async/await 的回调
使用 async/await 语法编写的异步函数中,await 表达式会等待一个 Future 的完成,并在当前事件循环中的微任务阶段恢复执行。
void main() async { print('Start'); await Future.delayed(Duration(seconds: 1)); print('Async callback');}
3) scheduleMicrotask() 函数
可以使用 scheduleMicrotask() 函数将一个回调函数添加到微任务队列中,以确保它在当前事件循环的微任务阶段执行。
void main() { print('Start'); scheduleMicrotask(() { print('Microtask callback'); });}
这些微任务都会在当前事件循环的微任务阶段被执行,而不会被其他事件中断。微任务的执行顺序是按照它们被添加到微任务队列的顺序来执行的。
请注意,与微任务相对的是宏任务(例如定时器事件、IO 事件等),宏任务的执行会在微任务之后进行。因此,在事件循环的每一轮中,微任务先于宏任务执行。