AbortController AbortController: Cancelamento de Requisição
Última atualização: 2026-11-03
AbortController AbortController: Cancelamento de Requisição
O AbortController é uma API nativa do navegador: passe seu signal para fetch e chame abort() para cancelar a requisição no meio do caminho. Desmontar um componente, mudar um parâmetro e aplicar debounce em uma busca se beneficiam disso — cancelar requisições obsoletas economiza banda e, mais importante, evita a corrida onde uma resposta antiga sobrescreve dados novos que já foram renderizados. O mesmo controller também pode abortar várias requisições de uma vez, então uma única rotina de limpeza cobre toda chamada em andamento iniciada por um componente.
| Grupo | Dados e Engenharia |
|---|---|
| Tipo | API |
| Desde | Native browser API (DOM Living Standard) |
ℹ️ Informação O editor transpila JSX para JavaScript e renderiza a UI real na sandbox; os componentes são montados automaticamente — sem render manual.
📝 Sintaxe
const ctrl = new AbortController()
fetch('/api/search?q=' + kw, { signal: ctrl.signal })
.then(r => r.json())
.catch(err => {
if (err.name === 'AbortError') return // cancelled on purpose, not an error
showError(err)
})
ctrl.abort() // triggers it: fetch rejects with an AbortError
⚙️ Parâmetros
| signal | A instância AbortSignal, passada para fetch como options.signal; o mesmo signal pode conduzir várias requisições e cancelar todas de uma vez. |
|---|
Retorna:O construtor retorna { signal, abort() }: o signal é o que o fetch escuta, abort() dispara o cancelamento e a requisição rejeita com um AbortError.
▶ Exemplo
O exemplo roda direto: renderiza automaticamente ao expandir e edições valem na hora.
Saída:
Clicar em "Enviar requisição" entra no estado de carregamento; clique em "Cancelar requisição" antes da resposta chegar e o estado se torna aborted em vez de error — uma requisição cancelada nunca atualiza a UI.