Я передаю Observable
stream (rxDart) на StreamBuilder
для прослушивания и обновления пользовательского интерфейса, и после этого, когда я закрываю поток в onDispose()
. Я ожидал, что закрывающий поток вызовет doOnClose()
побочный эффект моей наблюдаемой, но, к сожалению, doOnClose()
Наблюдаемой не вызывается,
Что я делаю:
Observable<dynamic> observerStream() {
return Observable.fromFuture(someFunction())
return data;
})
.doOnCancel(() {
print('*** NOT GETTING CALLED ***');
})
.asBroadcastStream();
Внутривиджет
StreamController _controller = StreamController<dynamic>();
@override
void initState() {
super.initState();
_controller?.addStream(observerStream());
}
return StreamBuilder(
stream: _controller.stream,
builder: (context, snapshot) {
return body(snapshot.data);
},
);
@override
void dispose() {
_controller?.close();
super.dispose();
}
В соответствии с приведенным выше кодом doOnClose()
должен вызываться, но он не вызывается !!!
Есть идеи по поводу такого поведения или сценария?