buffer method
Buffer value changes for specified duration
Implementation
void buffer(Duration duration, void Function(List<T> values) callback) {
RxTimingUtils._register(this);
final buffer = <T>[];
Timer? timer;
void listener() {
buffer.add(value);
timer?.cancel();
timer = Timer(duration, () {
if (buffer.isNotEmpty) {
callback(List.from(buffer));
buffer.clear();
}
});
// Track the timer for cleanup
if (timer != null) {
RxTimingUtils._getTimingData(this)?.addTimer(timer!);
}
}
addListener(listener);
}