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

Опрос статуса доставки продолжается после ухода с экрана заказа

struct DeliveryView: View {
    @StateObject var vm: DeliveryViewModel

    var body: some View {
        StatusCard(status: vm.status)
            .onAppear {
                Task { await vm.pollStatus() }   // цикл: запрос, пауза 5 секунд
            }
    }
}

Пользователь уходит назад, а в логах сервера запросы статуса идут каждые 5 секунд. После трёх заходов на экран — три параллельных опроса. Как проще всего исправить?

  • Заменить onAppear + Task на модификатор .task
  • Вызывать опрос в init структуры DeliveryView
  • Сделать pollStatus синхронным методом
  • Перенести Task в .onDisappear

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

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

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

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