Heim > Web-Frontend > js-Tutorial > Wie kann ich Netzwerkausfälle bei der Verwendung von Promises in JavaScript ordnungsgemäß behandeln?

Wie kann ich Netzwerkausfälle bei der Verwendung von Promises in JavaScript ordnungsgemäß behandeln?

Patricia Arquette
Freigeben: 2024-12-15 17:21:16
Original
581 Leute haben es durchsucht

How Can I Gracefully Handle Network Failures When Using Promises in JavaScript?

Umgang mit Netzwerkausfällen mit Promise Waiting

In JavaScript ist Promise.all() ein leistungsstarkes Tool zur Verwaltung mehrerer asynchroner Vorgänge. Es ist jedoch möglicherweise nicht geeignet, wenn Sie möchten, dass alle Versprechen erfüllt werden, auch wenn einige davon abgelehnt werden.

Um dieses Szenario zu bewältigen, können Sie eine benutzerdefinierte „Promise Reflect“-Funktion implementieren, die Versprechen in Objekte mit erfüllten oder abgelehnten Versprechen umwandelt Status:

const reflect = p => p.then(v => ({ v, status: "fulfilled" }), e => ({ e, status: "rejected" }));
Nach dem Login kopieren

Mit dieser Reflect-Funktion können Sie das ursprüngliche Array von Versprechen einem Array von reflektierten Arrays zuordnen Versprechen:

var arr = [ fetch('index.html'), fetch('http://does-not-exist') ]
var reflectedPromises = arr.map(reflect);
Nach dem Login kopieren

Schließlich können Sie Promise.all() verwenden, um darauf zu warten, dass alle reflektierten Versprechen abgeschlossen sind:

Promise.all(reflectedPromises).then(results => {
    var success = results.filter(x => x.status === "fulfilled");
});
Nach dem Login kopieren

Dieser Ansatz ermöglicht es Ihnen, Netzwerkausfälle elegant zu behandeln und fortzufahren erst nachdem alle Anfragen abgeschlossen sind. Sie können über die Arrays „Erfolg“ und „Ergebnisse“ auf die aufgelösten Werte und Fehler zugreifen.

Alternativ können Sie jetzt die native Promise.allSettled()-Methode verwenden:

Promise.allSettled([promise]).then(([result]) => {
    console.log(result);  // Handles both fulfilled and rejected promises
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Netzwerkausfälle bei der Verwendung von Promises in JavaScript ordnungsgemäß behandeln?. 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