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