withDefer<T> function
T
withDefer<T>(
- T run(
- void defer(
- void callback()
- void defer(
Implementation
T withDefer<T>(T Function(void Function(void Function() callback) defer) run) {
final deferred = <void Function()>[];
defer(void Function() callback) {
deferred.add(callback);
}
final result = run(defer);
for (final callback in deferred) {
callback();
}
return result;
}