代码拉取完成,页面将自动刷新
package retryutil
import (
"context"
"fmt"
"math"
"time"
)
var RetryAbleErr = fmt.Errorf("retry")
var TimeoutErr = fmt.Errorf("timeout")
func RetryUntilTimeout(ctx *context.Context, interval time.Duration, timeout time.Duration, do func() error) error {
err := do()
if err == nil {
return nil
}
if err != RetryAbleErr {
return err
}
if timeout == 0 {
timeout = time.Duration(math.MaxInt64)
}
//t := time.NewTimer(timeout)
for {
//select {
//case <-ctx.Done():
// return ctx.Err()
//case <-t.C:
// return TimeoutErr
//case <-time.After(interval):
// err := do()
// if err == nil {
// return nil
// }
//
// if err != RetryAbleErr {
// return err
// }
//}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。