subscribe method
void
subscribe()
Implementation
void subscribe() {
if (_subscription != null) return;
if (!hasData) {
status.value = ZenQueryStatus.loading;
}
error.value = null;
try {
final stream = streamFn();
_subscription = stream.listen(
(event) {
if (_isDisposed) return;
data.value = event;
status.value = ZenQueryStatus.success;
error.value = null;
},
onError: (err, stack) {
if (_isDisposed) return;
error.value = err;
status.value = ZenQueryStatus.error;
ZenLogger.logError('Stream error [$queryKey]', err, stack);
},
);
} catch (e, s) {
if (!_isDisposed) {
error.value = e;
status.value = ZenQueryStatus.error;
}
ZenLogger.logError('Failed to subscribe to stream [$queryKey]', e, s);
}
}