safeEvery static method
Disposable
safeEvery(
- dynamic interval,
- dynamic action()
)
Implementation
static Disposable safeEvery(dynamic interval, Function() action) {
Duration duration;
if (interval is Duration) {
duration = interval;
} else if (interval is int) {
duration = Duration(milliseconds: interval);
} else if (interval is Interval) {
duration = interval.duration;
} else {
throw Exception('Invalid Interval: $interval');
}
ExecutableFunction? schedule;
Timer? timer;
var disposed = false;
schedule = () async {
await action();
if (!disposed) {
Timer(duration, schedule!);
}
};
timer = Timer(duration, schedule);
return FunctionDisposable(() {
if (timer != null) {
timer.cancel();
}
disposed = true;
});
}