gpt4 book ai didi

dart - 先前添加的流值以返回监听(广播流)

转载 作者:行者123 更新时间:2023-12-03 03:00:13 24 4
gpt4 key购买 nike

我有一个自定义的StreamController<int>:

final StreamController listener = StreamController<int>.broadcast();

初始化后,我向流发送一个值
listener.add(7);

发出值后,我设置一个 Stream侦听器
listener.stream.listen((val) {
print(val);
});

预期的行为是,侦听器将 返回先前设置的值,但是事实并非如此。只有在设置侦听器之后再设置值,才会调用该侦听器。

我该如何实现这种行为?

(编辑:必须支持多个侦听器)

最佳答案

首先,不要将Stream设为broadcast stream,因为这种流的定义是允许多个订阅者,但是如果没有当前订阅者,所有事件都将丢失。

然后,查看从asBroadcastStream返回的Stream上的 StreamController 。此方法允许在第一个用户之后首先侦听Stream的情况下实现逻辑,并且还可以使逻辑(如在没有更多用户的情况下暂停流)成为可能。

关于dart - 先前添加的流值以返回监听(广播流),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62284828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com