diff --git a/retry/retry.go b/retry/retry.go index 820f71e..a30e6a1 100644 --- a/retry/retry.go +++ b/retry/retry.go @@ -130,14 +130,16 @@ func Retry(retryFunc RetryFunc, opts ...Option) error { var i uint for i < config.retryTimes { err := retryFunc() - if err != nil { + if err == nil { + return nil + } + + if i < config.retryTimes-1 { // Only wait if it's not the last retry select { case <-time.After(config.backoffStrategy.CalculateInterval()): case <-config.context.Done(): return errors.New("retry is cancelled") } - } else { - return nil } i++ }