Как прекратить выполнение HTTP-запросов после первой ошибки?

Передайте всем запросам общий отменяемый context и вызовите cancel при первой ошибке. Каждый запрос должен быть создан с этим контекстом, а результаты — корректно собраны.

Короткий ответ

Что ответить на собеседовании

Передайте всем запросам общий отменяемый context и вызовите cancel при первой ошибке. Каждый запрос должен быть создан с этим контекстом, а результаты — корректно собраны.

Подробный разбор

Ответ с пояснениями

Передайте всем запросам общий отменяемый context и вызовите cancel при первой ошибке. Каждый запрос должен быть создан с этим контекстом, а результаты — корректно собраны.

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее