diff --git a/packages/signals_core/lib/src/async/signal.dart b/packages/signals_core/lib/src/async/signal.dart index 442f5189..c0cf486b 100644 --- a/packages/signals_core/lib/src/async/signal.dart +++ b/packages/signals_core/lib/src/async/signal.dart @@ -190,29 +190,37 @@ class AsyncSignal extends ValueSignal> { /// Set the error with optional stackTrace to [AsyncError] void setError(Object error, [StackTrace? stackTrace]) { - value = AsyncState.error(error, stackTrace); - if (_completer.isCompleted) _completer = Completer(); - _completer.complete(true); + batch(() { + value = AsyncState.error(error, stackTrace); + if (_completer.isCompleted) _completer = Completer(); + _completer.complete(true); + }); } /// Set the value to [AsyncData] void setValue(T value) { - this.value = AsyncState.data(value); - if (_completer.isCompleted) _completer = Completer(); - _completer.complete(true); + batch(() { + this.value = AsyncState.data(value); + if (_completer.isCompleted) _completer = Completer(); + _completer.complete(true); + }); } /// Set the loading state to [AsyncLoading] void setLoading([AsyncState? state]) { - value = state ?? AsyncState.loading(); - _completer = Completer(); + batch(() { + value = state ?? AsyncState.loading(); + _completer = Completer(); + }); } /// Reset the signal to the initial value void reset([AsyncState? value]) { - this.value = value ?? _initialValue; - _initialized = false; - if (_completer.isCompleted) _completer = Completer(); + batch(() { + this.value = value ?? _initialValue; + _initialized = false; + if (_completer.isCompleted) _completer = Completer(); + }); } /// Initialize the signal @@ -436,4 +444,4 @@ AsyncSignal asyncSignal( equality: equality, autoDispose: autoDispose, ); -} \ No newline at end of file +}