您当前的位置: 首页 >  ar

大前端之旅

暂无认证

  • 4浏览

    0关注

    403博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Dart 流中的 listen 和 forEach 有什么区别?

大前端之旅 发布时间:2021-10-09 17:31:09 ,浏览量:4

stream - Dart 流中的 listen 和 forEach 有什么区别?

如果我有 Stream在 Dart 中,我可以同时使用 listenforEach ,但我不明白其中的区别。

因此,例如考虑以下代码:

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 - 前者只是为每个元素调用一个回调,另一个给你一种控制迭代的方法。

关注
打赏
1660524863
查看更多评论
立即登录/注册

微信扫码登录

0.0390s