草稿
errgroup就是在waitgroup基础上封装了一层。
我还是不喜欢 go的这个控制goroutine的方式。
只贴一下代码:
func main() {
eg, ctx := errgroup.WithContext(context.Background())
for i := 0; i < 10; i++ {
i := i
select {
case <-ctx.Done():
fmt.Printf("Task %v receive done!\n", i)
default:
eg.Go(func() error {
if i > 5 {
return fmt.Errorf()
}
fmt.Printf("Task %v yes!\n", i)
return nil
})
}
}
// block util all methods return or income first non-nil error
_ = eg.Wait()
}
标签:return,nil,errgroup,fmt,用法,go,eg
From: https://www.cnblogs.com/runninginsilence/p/17847608.html