Вступить в клуб →
лёгкаявопросSwift Concurrency: Task, акторы и MainActor

Задержка поиска сделана через Thread.sleep внутри Task

searchTask?.cancel()
searchTask = Task {
    Thread.sleep(forTimeInterval: 0.3)
    guard !Task.isCancelled else { return }
    results = try await api.search(query)
}

Код работает, но ревьюер просит заменить задержку. Что не так с Thread.sleep здесь?

  • Он блокирует поток и не реагирует на отмену
  • Thread.sleep не учитывает приоритет задачи
  • Он задерживает на секунды, а не миллисекунды
  • Замечание стилевое, поведение одинаковое

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела