interval method
Calls callback at most once every duration upon changes.
Useful to restrict the firing rate of rapid events (e.g. scroll metrics).
Implementation
VoidCallback interval(Duration duration, void Function(T value) callback) {
Timer? intervalTimer;
bool canFire = true;
void listener() {
if (canFire) {
callback(value);
canFire = false;
intervalTimer = Timer(duration, () => canFire = true);
}
}
addListener(listener);
return () {
intervalTimer?.cancel();
removeListener(listener);
};
}