AbortController: отмена fetch и поиска без гонок состояния

AbortController выдаёт signal, который передаётся в fetch() — при abort() запрос прерывается, а промис отклоняется с AbortError.
Типичный кейс — автодополнение: каждый новый ввод отменяет предыдущий запрос, чтобы старый ответ не перезаписал актуальный.
- [AbortController — MDN](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) — API и примеры.
- [Fetch: aborting requests — MDN](https://developer.mozilla.org/en-US/docs/Web/API/fetch#canceling_a_request) — signal в RequestInit.
---
## React и SPA
В useEffect создавайте controller на маунт и вызывайте abort() в cleanup — это снижает утечки при размонтировании.
Не показывайте ошибку пользователю для намеренной отмены — фильтруйте error.name === "AbortError".
