call_periodically_with_hot_reload function

void call_periodically_with_hot_reload({
  1. required void routine(),
  2. required void wrapper(
    1. void ()
    ),
  3. Duration period = const Duration(milliseconds: 1000),
})

Same as call_periodically, but meant to be used with hot reload. Inject your hot reload implementation via wrapper.

Implementation

void call_periodically_with_hot_reload({
  required final void Function() routine,
  required final void Function(void Function()) wrapper,
  final Duration period = const Duration(
    milliseconds: 1000,
  ),
}) {
  StreamSubscription<dynamic>? _subscription;
  wrapper(
    () {
      _subscription?.cancel();
      _subscription = Stream<dynamic>.periodic(
        period,
      ).listen(
        (final dynamic _) => routine(),
      );
    },
  );
}