Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
AbortSignal
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since abril de 2018.
* Some parts of this feature may have varying levels of support.
Experimental:Esta é umatecnologia experimental
Verifique atabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.
A interfaceAbortSignal representa o sinal de um objeto que permite a você se comunicar com uma Requisição de DOM (como Fetch) e aborta-la se necessário via um objetoAbortController
In this article
Propriedades
A interface AbortSignal também herda propriedades de sua interface pai,EventTarget.
AbortSignal.abortedSomente leituraUm
Booleanque indica quando a(s) Request(s) com a qual o sinal está se comunicando está/estão abortadas(true) ou não(false).
Handlers de Eventos
AbortSignal.onabortInvocado quando um
abortevento dispara, ex: quando as requests do DOM que o sinal estão se comunicando são/estão abortadas.
Métodos
A interface AbortSignal também herda métodos de sua interface pai,EventTarget.
Exemplos
No exemplo de código a seguir, nós vamos focar em fazer download de um vídeo usando aFetch API.
Nós primeiro criaremos um controller usando o construtor doAbortController(), e então pegar a referência de seu objetoAbortSignal associado usando a propriedadeAbortController.signal.
Quando arequisição Fetch é iniciada, nós passamos oAbortSignal como uma opção dentro do objeto de opções da request (veja{signal}, abaixo). Isso associa o sinal e o controller com a requisição fetch e nos permite aborta-la chamandoAbortController.abort(), como visto abaixo no segundoevent listener.
var controller = new AbortController();var signal = controller.signal;var downloadBtn = document.querySelector('.download');var abortBtn = document.querySelector('.abort');downloadBtn.addEventListener('click', fetchVideo);abortBtn.addEventListener('click', function() { controller.abort(); console.log('Download aborted');});function fetchVideo() { ... fetch(url, {signal}).then(function(response) { ... }).catch(function(e) { reports.textContent = 'Download error: ' + e.message; })}Nota:Quandoabort() é chamado, a promessa dofetch() é rejeitada com umAbortError.
Você pode encontrar um exemplo completo no GitHub — vejaabort-api (see it running live also).
Especificações
| Specification |
|---|
| DOM> # interface-AbortSignal> |
Compatibilidade com navegadores
Veja Também
- Fetch API
- Abortable Fetch by Jake Archibald