【发布时间】:2020-12-02 18:03:17
【问题描述】:
我在 Flutter 项目中使用 RxDart 已经有一段时间了。但是,我发现定义 BehaviorSubject 可以直接收听主题以及主题的流,这让我感到困惑。我真的无法指出其中的区别。
示例:
BehaviorSubject<String> _mySubject = BehaviorSubject();
_mySubject.listen((value) => { print('Logging $value'} );
_mySubject.stream.listen((value) => { print('Logging $value'} );
此外,BehaviorSubjects 似乎提供了两种方法来访问最后发出的值,从文档中我看到了同步的 value getter。以及返回 Future 的 last getter。
我再一次感到困惑。如果没有发出任何内容,那么为什么 value getter 不返回 null?相反,它只是等待。我发现的唯一解决方法是使用 null 值作为主题。
最后,我尝试使用 last getter 作为 Future,但它永远不会返回。有没有数据。在主题上调用它似乎永远不会起作用。
编辑:
感谢 @pskink 指出 stream getter 返回 Subject 本身,因此我的前两个示例之间没有区别。
【问题讨论】:
-
@pskink 感谢您指出这一点。所以它们是完全一样的。很高兴知道。
-
当然,欢迎您