dart - Dart 中的 async 和 async* 有什么区别?
问题描述
我正在使用颤振框架制作应用程序。在此期间,我遇到了 Dartasync
和async*
. 谁能告诉我它们之间有什么区别?
解决方案
将函数标记为async
或async*
允许它使用async
/await
表示Future
.
两者的区别在于它async*
总是返回 a并提供一些语法糖来通过关键字Stream
发出一个值。yield
因此,我们可以做到以下几点:
Stream<int> foo() async* {
for (int i = 0; i < 42; i++) {
await Future.delayed(const Duration(seconds: 1));
yield i;
}
}
此函数每秒发出一个值,每次递增。
推荐阅读
- graphviz - 向 Dask 图添加标签
- sed - Unix 中使用 sed 命令的子字符串文件名
- javascript - XML:如何将项目(HBox/Vbox 的按钮)向右对齐
- rest - 发生异常时需要发送 HTTP-error-500
- php - 如何从 xml 文件中显示图像上的边界框
- excel - VB拆分行,使每一行与EXCEL中A列的ID保持一致
- python - Send response to all clients with FLASK
- python - 选择按包含的日期过滤字母数字列
- javascript - 通过 javascript 为 HTML 正文分配随机 rgb 背景颜色
- python-3.x - 如何使用pywinauto python按下windows键