问题标签 [dart-stream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
638 浏览

dart - 是否可以将项目添加到 Dart 流中包含的列表中?

问题

我有一个Stream<List>正在几个类中收听的内容,一旦将值添加到流中的列表中,我需要所有类接收更新的流。

我试过的

这是StreamList类的代码

我尝试了dart:async库中的不同 API,包括Stream.first返回Future<List<T>>. 但问题是,这个 Future 仅在稍后将某些内容添加到 Stream 之后(例如,通过调用该StreamedList.updateList函数)才能解决。

问题

如何将单个值添加到List内部Stream

0 投票
1 回答
14537 浏览

flutter - 如何在 dart/flutter 中监听流值

任何人帮助追踪音频的位置(即)

如果在 initstate 中添加错误,我被困在哪里添加此代码,我想通过音频平台收听位置

代码从这里开始

代码到此结束

摘要:在特定位置需要触发一些函数而位置变化(即)

通过音频播放或应用程序处于前台

0 投票
1 回答
166 浏览

flutter - 为什么 StreamBuilder 多次使用 initialData 而不是最新的快照?

我可能只是误解了飞镖的流,但是当我这样做时:

使用 TabBarView 渲染 StreamBuilder 时出现一些奇怪的行为。

首先,我必须使用asBroadcastStream()否则我会得到:

错误状态:Stream 已被收听

我承认这是一个糟糕的解决方案。

但是,虽然解决方案有效,但现在返回 TabBarView 中的 StreamBuilder 将重新使用 initialData 而不是流的最新快照来重建。这是两次返回选项卡时的打印输出:

I/flutter (14541):涂料
I/flutter (14541):正确的 URL
I/flutter (14541):涂料
I/flutter (14541):涂料

我认为这两个问题都是相关的,但我不明白为什么 StreamBuilder 重用 async* 和 initialData

0 投票
1 回答
318 浏览

dart - Dart:如何创建一个聚合来自另一个流的事件的流?

创建需要从另一个 Stream 聚合多个事件的流的最佳方法是什么?

我的目标是创建一个流来聚合来自另一个流的事件,直到它有足够的事件来构建消息。在我的情况下,我正在从 Socket 流中读取数据,因此消息可能分布在不同的事件中,并且事件可能包含各种消息的数据,因此我不能只对每个元素应用映射操作。

似乎正确的方法是使用 Stream Transformer,但我无法找到有关如何正确实现它且没有太多样板代码的信息。

在阅读了有关如何创建流的信息后,我想出了一个解决方案,但我不确定这是否可以接受,也不是最好的方法。

这是我的解决方案示例:

0 投票
1 回答
1058 浏览

flutter - 不处理流,而是将计数器流值重置为 0 并再次收听

我有一个计数器组并在第二页上显示计数器,我想在导航回第一页或按下返回按钮而不处理流时将计数器值重置为 0(零),以便我可以在整个应用程序中收听流.

简而言之,无论何时返回第二页,流计数都应从 0 开始。

CounterBloc.dart

0 投票
1 回答
817 浏览

flutter - Dart StreamController:30 秒后测试超时

我正在尝试创建一个反应式SharedPreferences实用程序,但我遇到了这个问题。这是我的课

这是我的测试

每当我运行此测试时,它都会循环 30 秒并返回此错误

如果我改用这个实现,一切都很好

所以我假设我的测试是正确的。提前致谢。

0 投票
1 回答
4544 浏览

flutter - Flutter:如何从一个流中获取所有数据,然后在同一个流中监听新的更新?

我怎样才能在某个时候收听流,以便最初流中可用的所有数据都将被传递,然后更新也会在它们到来时被收听。

在上面的示例中,someMethod()将首先打印流中的所有可用值,然后当有新数据添加到流中时。

我怎样才能做到这一点?

0 投票
1 回答
208 浏览

firebase - Firestore 如何从文档快照流中的快照访问值

我是 dart/flutter 的新手,现在正在构建一个应用程序,用于跟踪 firstore 数据库中每个用户的一些数据。我有一个“用户”集合,其中包含每个用户的文档,用户文档中的一个字段是通过 firebase_auth 接收的“UID”。

话虽如此,为了确保我可以访问用户文档的最新副本,我持有一个 Stream。我想以某种方式从流中的最新快照访问“UID”字段,然后对其进行一些其他操作。

有没有办法做到这一点?我是否错误地使用/理解流?

0 投票
1 回答
402 浏览

flutter - Cancelling a StreamSubscription in flutter

I have the following stream subscription

The inputStream is a broadcast stream exposed like this.

I would like to stop listening to the stream, so I am calling

But I keep receiving messages on my onDataReceivedFromUSBSerial method. I keep getting messages on the onDataReceivedFromUSBSerial even if I close the dialogue that all this is implemented on.

Question: How do I stop listening to my usbStream?

0 投票
0 回答
36 浏览

dart - 重试流中的最后一项,并从那里继续

我正在使用来下载媒体。下载函数返回一个流。有时,在下载过程中,用于生成流中每个项目的http 请求之一中会发生错误。

发生此类错误时,我目前正在丢弃整个下载并从头开始重试。在无法更改库代码的情况下,是否可以重试流中的最后一项,以便可以再次重试 http 请求并从那里继续下载?

我意识到这可能是不可能的,因为库的状态需要以某种方式倒带到错误发生之前。但也许有人建议我如何处理下载大文件几分钟后可能发生的此类库错误,并利用我已经成功下载所有数据到错误点的事实。