import type { Fns, NonZeroPositiveInteger, Result } from '@chzky/core'; import { AnyErrorMachine } from '@chzky/core'; /** ## `RetryError` : 表示重试次数达到最大次数导致的错误 @deflevel `Fatal` @defcause `The maximum number of promise retries has been reached` @category Error */ export declare class RetryError extends AnyErrorMachine<'Fatal'> { } interface RetryOptions { /** 最大的单个重试等待时间,单位`ms` @default {6000} */ max_wait: number; /** 最小的单个重试等待时间,单位`ms` @default {600} */ min_wait: number; } /** ## `retry` : 允许Pormise失败进行重试 会执行重试的情况: 1. `Promise`返回{@link Err}类型的数据 2. `Promise`的状态是`rejected` 如果重试超过重试次数,会返回{@link RetryError} @param promiser - 返回一个`Promise`的纯函数 @throws 当`max_wait { if (count < 5) { count++ if (count % 2 === 0) return UnexpectedError.err() else throw UnexpectedError.new() } else return Ok() } const res = await retry(pm, 5, { max_wait: 1000 }) assert(res.is_ok) ``` */ export declare function retry(promiser: Fns>, /** 重试的次数,默认为3 */ frequency?: NonZeroPositiveInteger, retry_options?: Partial): Promise>; export {}; //# sourceMappingURL=retry.d.ts.map