当前位置:
首页 >
Dart 流中的 listen 和 forEach 有什么区别?
发布时间:2025/3/19
33
豆豆
生活随笔
收集整理的这篇文章主要介绍了
Dart 流中的 listen 和 forEach 有什么区别?
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
stream - Dart 流中的 listen 和 forEach 有什么区别?
如果我有 Stream在 Dart 中,我可以同时使用 listen和 forEach ,但我不明白其中的区别。
因此,例如考虑以下代码:
final process = await Process.start('pub', ['serve']); process.stdout.map((l) => UTF8.decode(l)).forEach(print);我也可以写:
process.stdout.map((l) => UTF8.decode(l)).listen(print);有什么区别吗?
最佳答案
forEach Stream 上的函数将在第一个错误处停止,并且不会给您 StreamSubscription控制您在流上收听的方式。使用 forEach如果这是您想要的,那就太好了 - 它会告诉您何时完成(返回的 Future )并且您所要做的就是处理事件。如果您需要更多控制,可以使用 listen打电话是怎么回事forEach被执行。
这就像Iterable.forEach之间的区别和 Iterable.iterator - 前者只是为每个元素调用一个回调,另一个给你一种控制迭代的方法。
总结
以上是生活随笔为你收集整理的Dart 流中的 listen 和 forEach 有什么区别?的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Flutter:删除所有已保存的shar
- 下一篇: 其他类似GitBook的在线文档创作平台