executeWithLoadingDelay<T> function
包装一个异步操作,自动处理 loading 延迟
Implementation
Future<T> executeWithLoadingDelay<T>({
required Future<T> Function() action,
required Duration delay,
required void Function(bool loading) onLoadingChange,
}) async {
final controller = LoadingDelayController(
delay: delay,
onLoadingChange: onLoadingChange,
);
controller.startLoading();
try {
final result = await action();
controller.endLoading();
return result;
} catch (e) {
controller.endLoading();
rethrow;
}
}