( self: Effect.Effect<A, E, R>, driver: Schedule.ScheduleDriver<B, A, R1>, orElse: (error: E, option: Option.Option<B>) => Effect.Effect<C, E2, R2>, value: A )
| 1957 | |
| 1958 | /** @internal */ |
| 1959 | const repeatOrElseEffectLoop = <A, E, R, R1, B, C, E2, R2>( |
| 1960 | self: Effect.Effect<A, E, R>, |
| 1961 | driver: Schedule.ScheduleDriver<B, A, R1>, |
| 1962 | orElse: (error: E, option: Option.Option<B>) => Effect.Effect<C, E2, R2>, |
| 1963 | value: A |
| 1964 | ): Effect.Effect<B | C, E2, R | R1 | R2> => |
| 1965 | core.matchEffect(driver.next(value), { |
| 1966 | onFailure: () => core.orDie(driver.last), |
| 1967 | onSuccess: (b) => |
| 1968 | core.matchEffect(self, { |
| 1969 | onFailure: (error) => orElse(error, Option.some(b)), |
| 1970 | onSuccess: (value) => repeatOrElseEffectLoop(self, driver, orElse, value) |
| 1971 | }) |
| 1972 | }) |
| 1973 | |
| 1974 | /** @internal */ |
| 1975 | export const retry_Effect = dual< |
no test coverage detected
searching dependent graphs…