poll<T> static method

Signal<T> poll<T>(
  1. Future<T> getter(),
  2. Duration interval,
  3. T initialValue
)

Create a polling signal that updates periodically.

Implementation

static Signal<T> poll<T>(
  Future<T> Function() getter,
  Duration interval,
  T initialValue,
) {
  final signal = Signal<T>(initialValue);

  Timer.periodic(interval, (timer) async {
    try {
      final value = await getter();
      signal.emit(value);
    } catch (e) {
      // Ignore errors in polling
    }
  });

  return signal;
}