bind method
Binds an external stream to this reactive variable.
Implementation
void bind(Stream<T> externalStream) {
if (_boundStream != null && _boundStream == externalStream) return;
unbind();
_boundStream = externalStream.map((event) {
_value = event;
_controller?.add(event);
super.notify();
return event;
}).transform(
StreamTransformer<T, T>.fromHandlers(
handleError: (error, st, sink) {
_controller?.addError(error, st);
sink.addError(error, st);
},
),
).asBroadcastStream(
onListen: (sub) {
_externalListeners++;
_checkActive();
},
onCancel: (subscription) {
_externalListeners--;
_checkActive();
subscription.cancel();
},
);
if (hasListener) {
_activeBoundSubscription = _boundStream!.listen((_) {});
}
}