Передайте всем запросам общий отменяемый context и вызовите cancel при первой ошибке. Каждый запрос должен быть создан с этим контекстом, а результаты — корректно собраны.
Как прекратить выполнение HTTP-запросов после первой ошибки?
Передайте всем запросам общий отменяемый context и вызовите cancel при первой ошибке. Каждый запрос должен быть создан с этим контекстом, а результаты — корректно собраны.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Передайте всем запросам общий отменяемый context и вызовите cancel при первой ошибке. Каждый запрос должен быть создан с этим контекстом, а результаты — корректно собраны.
В Go удобно использовать errgroup.WithContext: первый ненулевой error отменяет контекст группы. Запросы создают через http.NewRequestWithContext, тела ответов закрывают. HTTP 4xx/5xx не всегда становятся ошибкой client.Do, поэтому статус проверяют отдельно. Отмена не откатывает уже выполненные действия удалённого сервиса.