Heim > Web-Frontend > js-Tutorial > Wie können Versprechen asynchrone XHR-Anfragen in JavaScript vereinfachen?

Wie können Versprechen asynchrone XHR-Anfragen in JavaScript vereinfachen?

Susan Sarandon
Freigeben: 2024-12-06 20:14:16
Original
576 Leute haben es durchsucht

How Can Promises Simplify Asynchronous XHR Requests in JavaScript?

Wie Promises asynchrone Programmierung mit nativem XHR ermöglichen

Bei der Arbeit mit Programmierung. Die Implementierung von versprochenem XHR ohne ein umfangreiches Framework kann sich jedoch als Herausforderung erweisen.

Natives :

Einführung von Versprechen mit XHR
function makeRequest(method, url, done) {
  const xhr = new XMLHttpRequest();
  xhr.open(method, url);
  xhr.onload = function() {
    done(null, xhr.response);
  };
  xhr.onerror = function() {
    done(xhr.response);
  };
  xhr.send();
}
Nach dem Login kopieren

Um das native XHR zu versprechen, nutzen wir den Promise-Konstruktor:

Jetzt können wir asynchrone XHR-Anfragen mit .then() und .catch nahtlos verketten und verarbeiten ():

function makeRequest(method, url) {
  return new Promise(function(resolve, reject) {
    const xhr = new XMLHttpRequest();
    xhr.open(method, url);
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        resolve(xhr.response);
      } else {
        reject({
          status: xhr.status,
          statusText: xhr.statusText
        });
      }
    };
    xhr.onerror = function() {
      reject({
        status: xhr.status,
        statusText: xhr.statusText
      });
    };
    xhr.send();
  });
}
Nach dem Login kopieren

Erweitert Funktionalität
makeRequest('GET', 'http://example.com')
  .then(function(datums) {
    console.log(datums);
  })
  .catch(function(err) {
    console.error('Augh, there was an error!', err.statusText);
  });
Nach dem Login kopieren

Wir können die makeRequest-Funktion weiter verbessern, indem wir ein anpassbares Optionsobjekt akzeptieren:

Dadurch können wir Parameter wie POST/PUT-Daten und benutzerdefinierte Header angeben:

function makeRequest(opts) {
  return new Promise(function(resolve, reject) {
    // ... (code remains similar to previous example) ...
  });
}
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass die Bereitstellung von nativem XHR ein leistungsstarkes Mittel zur Vereinfachung und Verbesserung der asynchronen Programmierung in Ihren Frontend-Anwendungen bietet. Die Verwendung des Promise-Konstruktors zusammen mit anpassbaren Optionen bietet einen flexiblen und effizienten Ansatz für die Bearbeitung von XHR-Anfragen.

Das obige ist der detaillierte Inhalt vonWie können Versprechen asynchrone XHR-Anfragen in JavaScript vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage