После одной сетевой ошибки поиск перестаёт реагировать на ввод
$query
.debounce(for: .milliseconds(300), scheduler: RunLoop.main)
.flatMap { text in api.searchPublisher(text) } // AnyPublisher<[Item], Error>
.catch { _ in Just([]) }
.receive(on: DispatchQueue.main)
.assign(to: &$results)
В метро один запрос упал по таймауту, список очистился. Сеть вернулась, но поиск больше не реагирует на ввод, пока экран не открыть заново. Почему?
- catch заменил всю цепочку на Just, и она завершилась
- debounce перестаёт работать после ошибки
- assign(to:) отписывается при пустом массиве
- Just([]) нужно заменить на Empty()
