Я запускаю пачку горутин внутри которых обращаюсь к удалённому api.
// Функция main
in := make(chan [][]UserData, 0)
defer close(in)
go func() {
for _, url := range urls {
go getUsersData(url, in)
time.Sleep(time.Millisecond * 50)
}
}()
var usersData []UserData
for i := 0; i < len(urls); i++ {
result := <-in
for _, v := range result {
usersData = append(usersData, v...)
}
}
// ...
// Горутина (Функция getUsersData)
resp, err := http.Get(url)
if err != nil {
return
}
defer resp.Body.Close()
u := &usersDataResponse{}
if err := json.NewDecoder(resp.Body).Decode(u); err != nil {
// ?
return
}
if u.Error.ErrorCode != 0 {
// ?
return
}
out <- u.Response
Как в случае возникновения ошибки внутри горутины продолжить работу основной программы?