Erstellen Sie eine Funktion zum Aufrufen Ihrer API. Innerhalb dieser Funktion definieren wir die Anforderung callApiRequest = $.get(...
- obwohl dies eine Definition einer Variablen ist, wird die Anforderung sofort aufgerufen, aber jetzt haben wir die Anforderung als Variable definiert. Bevor die Anforderung aufgerufen wird, prüfen wir, ob unsere Variable definiert ist typeof(callApiRequest) != 'undefined'
und ob sie aussteht. suggestCategoryRequest.state() == 'pending'
Wenn beide wahr sind, wird .abort()
die Anforderung, die den erfolgreichen Rückruf verhindert, ausgeführt.
// We need to wrap the call in a function
callApi = function () {
//check if request is defined, and status pending
if (typeof(callApiRequest) != 'undefined'
&& suggestCategoryRequest.state() == 'pending') {
//abort request
callApiRequest.abort()
}
//define and make request
callApiRequest = $.get("https://example.com", function (data) {
data = JSON.parse(data); //optional (for JSON data format)
//success callback
});
}
Ihr Server / Ihre API unterstützt möglicherweise nicht das Abbrechen der Anforderung (was ist, wenn die API bereits Code ausgeführt hat?), Der Javascript-Rückruf wird jedoch nicht ausgelöst. Dies ist nützlich, wenn Sie beispielsweise einem Benutzer Eingabevorschläge bereitstellen, z. B. die Eingabe von Hashtags.
Sie können diese Funktion weiter erweitern, indem Sie die Definition des Fehlerrückrufs hinzufügen. Was soll passieren, wenn die Anforderung abgebrochen wurde?
Ein häufiger Anwendungsfall für dieses Snippet ist eine Texteingabe, die bei einem keypress
Ereignis ausgelöst wird. Sie können eine Zeitüberschreitung verwenden, um das Senden (einiger) Anforderungen zu verhindern, die Sie abbrechen müssen .abort()
.