Урок 109 · Задача 1

HandleCancel: различить причину

После отмены отвечай по-разному: DeadlineExceeded — 504, Canceled — тихий выход. Реализуйте handleCancel(ctx) string: select по ctx.Done() и switch по ctx.Err().

00:00:00
Показать решение
GolangРешение
func handleCancel(ctx context.Context) string {
	select {
	case <-ctx.Done():
		switch ctx.Err() {
		case context.DeadlineExceeded:
			return "504"
		case context.Canceled:
			return "client-gone"
		}
	}
	return ""
}
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки