我正在使用flutter框架创建一个应用程序。在此期间,我遇到了Dart“async”和“async *”中的关键字。谁能告诉我他们之间有什么区别?提前致谢。
将函数标记为async
或async*
允许它使用async
/ await
关键字来使用Future
。
两者之间的区别在于async*
将始终返回Stream
并提供一些语法糖以通过yield
关键字发出值。
因此,我们可以做到以下几点:
Stream<int> foo() async* {
for (int i = 0; i < 42; i++) {
await Future.delayed(const Duration(seconds: 1));
yield i;
}
}
此函数每秒发出一个值,每次都会递增