limited<T> method
Worker that executes a limited number of times
Implementation
ZenWorkerHandle limited<T>(
ValueNotifier<T> obs,
void Function(T) callback,
int maxExecutions,
) {
if (maxExecutions <= 0) {
throw ArgumentError('maxExecutions must be positive');
}
int count = 0;
late ZenWorkerHandle handle;
handle = ever<T>(obs, (value) {
if (count < maxExecutions) {
try {
callback(value);
count++;
if (count >= maxExecutions) {
handle.dispose();
}
} catch (e, stack) {
ZenLogger.logError('Error in limited worker', e, stack);
handle.dispose();
}
}
});
return handle;
}