Die Einführung von fetch() in JavaScript hat die Verarbeitung von HTTP-Anforderungen revolutioniert und eine vielseitige und intuitive Benutzeroberfläche bereitgestellt. Es bestehen jedoch häufig Bedenken hinsichtlich der Möglichkeit, diese Anfragen vorzeitig zu beenden.
Seit September 2017 enthält fetch() eine wesentliche Verbesserung: Unterstützung für den Signalparameter . Mit diesem Parameter können Entwickler Anforderungen mithilfe eines AbortControllers und des entsprechenden AbortSignals abbrechen. Anfangs war die Browserunterstützung begrenzt, aber jetzt (Stand März 2020) unterstützen die meisten gängigen Browser (Edge, Firefox, Chrome, Safari, Opera und andere) diese Funktionalität vollständig.
Der Stornierungsprozess umfasst vier Schritte:
const controller = new AbortController()
const signal = controller.signal
fetch(urlToFetch, { method: 'get', signal: signal, })
controller.abort();
Um zu veranschaulichen, wie es in der Praxis funktioniert, betrachten Sie das folgende Beispiel:
// Create an instance. const controller = new AbortController() const signal = controller.signal /* // Register a listenr. signal.addEventListener("abort", () => { console.log("aborted!") }) */ function beginFetching() { console.log('Now fetching'); var urlToFetch = "https://httpbin.org/delay/3"; fetch(urlToFetch, { method: 'get', signal: signal, }) .then(function(response) { console.log(`Fetch complete. (Not aborted)`); }).catch(function(err) { console.error(` Err: ${err}`); }); } function abortFetching() { console.log('Now aborting'); // Abort. controller.abort() }
Durch Aufruf von controller.abort() , die Anfrage kann jederzeit unterbrochen werden.
Das obige ist der detaillierte Inhalt vonWie kann ich HTTP-Abrufanforderungen in JavaScript unterbrechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!