У меня есть 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
и установить в конструкторе ее желаемую наблюдаемую. Хотя это решение звучит как обходной путь, и я не уверен, почему метод будет запускаться дважды.
Любые идеи?