请问函数执行太久,适合用返回 值表达函数有错误 吗?

taatcc · · 861 次点击
```go func AsyncCall() error { ctx, cancel := context.WithTimeout(context.Background(), time.Duration(time.Second * 300)) defer cancel() go func(ctx context.Context) { // 具体业务实现 }(ctx) select { case <-ctx.Done(): fmt.Println("successfully!!!") return nil case <-time.After(time.Duration(time.Second * 305)): fmt.Println("timeout!!!") return errors.New("timeout") } } ```
#4
更多评论
你需要的是个超时机制,考虑下使用 select + time.Timer
#2