我有一个 StreamBuilder 接受来自我的服务的流。它看起来像这样:
StreamBuilder(
stream: MyService.getStream$()
builder (...)
);
另外,我使用以下方法提供服务:
getStream$() {
print('being printed twice');
return Observable.just('text')
.doOnData(() => print('being printed twice too'));
}
当我运行该应用程序时,我会prints
打印两次(每次)以下内容。
但是,当我将以下实现更改为变量时,它只运行一次:
Observable getStream = Observable
.just('text')
.doOnData((data) => print('being printed once');
当然,在上面的示例中,我会使用变量,但在我的原始代码中,我无法这样做,因为我依赖于实例属性。
我能做的是声明一个Observable
变量并在构造函数中将其设置为我想要的 observable。虽然,这个解决方案听起来像是一种解决方法,但我不确定为什么该方法会被触发两次。
有任何想法吗?