Вопрос: Как использовать `errgroup` для конкурентных задач с общей отменой?

Go Middle Без компании
Вопрос: Как использовать `errgroup` для конкурентных задач с общей отменой?
Ответы
```go // golang.org/x/sync/errgroup g, ctx := errgroup.WithContext(context.Background()) g.Go(func() error { return task1(ctx) }) g.Go(func() error { return task2(ctx) }) if err := g.Wait(); err != nil { // первая ошибка отменит ctx } ``` **Как это работает:** `errgroup` отменяет общий контекст при первой ошибке, упрощая конкурентный контроль ошибок.