有没有办法在 Dart 中"done"流时完成未来,而不会实际耗尽消息?

  • 本文关键字:消息 未来 Dart done 有没有 dart
  • 更新时间 :
  • 英文 :


我想看看对方是否放弃并关闭了StreamChannel的接收器,而没有真正阅读消息。

(我要把流交给别人,所以我不能听()它,因为你每个流只能听一次。

[为朋友发帖,感谢他们提出问题]

简而言之,没有。

没有"放弃"的概念。如果您将事件放入非广播流中,它们将一直保留在那里,直到有人收听流(这就是为什么在有人收听之前您不应该将数据放在那里,您只是在浪费内存)。 这包括 done 事件,如果不先阅读前面的所有事件,您将无法进入 done 事件。这是流的核心抽象 - 按顺序访问的事件源,直到实际完成才完成。

我认为您正在寻找的是一个"侧信道",它可以在不通过流(即带外)的情况下传达有关流的信息。 这样的东西肯定可以构建 - 以大约无数种不同的方式构建,具体取决于您想要什么,但它只是默认情况下不是Stream支持的东西,如果我正确阅读它,StreamChannel也没有(我自己从未使用过StreamChannel)。

最新更新