build method

  1. @override
AsyncValue<DateTime> build()

Initialize a Notifier.

It is safe to use Ref.watch or Ref.listen inside this method.

If a dependency of this Notifier (when using Ref.watch) changes, then build will be re-executed. On the other hand, the Notifier will not be recreated. Its instance will be preserved between executions of build.

If this method throws, reading this provider will rethrow the error.

Implementation

@override
AsyncValue<DateTime> build() {
  _getTimeStream = ref.watch(getTimeStreamProvider);
  _stream = _getTimeStream();

  _stream!.listen((time) {
    state = AsyncValue.data(time);
  }, onError: (error, stackTrace) {
    state = AsyncValue.error(error, stackTrace);
  });

  return const AsyncValue.loading();
}