可取消重试
将异步函数包装在具有可取消功能的自动重试逻辑中的实用程序。
特点
允许在某些条件下自动重试请求。重试逻辑使用指数退避实现,当通过网络进行请求时很有用。如果您不需要继续重试,则可以取消重试。在这种情况下,将返回最后的结果。
入门
要使用此插件,请将 cancelable_retry 添加到 pubspec.yaml 文件中的依赖项。
用法
创建 CancelableRetry 实例并调用 run()
import 'package:cancelable_retry/cancelable_retry.dart';
final request = CancelableRetry(
// Provide request function
() => doSomeRequest(),
// Set conditions for retry
retryIf: (result) => result == "retry",
// Optional:
// - Define max retry attempts
maxAttempts: 8,
// - Define max delay between retries
maxDelay: const Duration(seconds: 30),
// - Tune delay between retries
delayFactor: const Duration(milliseconds: 200),
randomizationFactor: 0.25,
);
// Run request
final res = await request.run();
如果您想取消重试,只需调用 cancel()
await request.cancel();