История изменений
Исправление alnkapa, (текущая версия) :
wg := sync.WaitGroup{}
errCh := make(chan error, 10)
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
defer wg.Done()
if err = fu(i); err != nil {
errCh <- err
}
}()
}
var err error
wg.Wait()
close(errCh)
for err1 := range errCh {
err = errors.Join(err, err1)
}
fmt.Println(err)
Совсем недавно использовал такую конструкцию, как это сделать с try…catch или еще как то, не представляю.
Исправление alnkapa, :
wg := sync.WaitGroup{}
errCh := make(chan error, 10)
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
defer wg.Done()
if err = fu(i); err != nil {
errCh <= err
}
}()
}
var err error
wg.Wait()
close(errCh)
for err1 := range errCh {
err = errors.Join(err, err1)
}
fmt.Println(err)
Совсем недавно использовал такую конструкцию, как это сделать с try…catch или еще как то, не представляю.
Исходная версия alnkapa, :
wg := sync.WaitGroup{}
errCh := make(chan error, 10)
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
defer wg.Done()
if i%2 == 0 {
errCh <- errors.New("error" + strconv.Itoa(i))
}
}()
}
var err error
wg.Wait()
close(errCh)
for err1 := range errCh {
err = errors.Join(err, err1)
}
fmt.Println(err)
Совсем недавно использовал такую конструкцию, как это сделать с try…catch или еще как то, не представляю.