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
Susan SarandonOriginal
2024-12-06 20:14:16570Durchsuche

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();
}

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();
  });
}

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);
  });

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) ...
  });
}

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!

Stellungnahme:
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