Ausnahmesituationen in Promises in JavaScript
Lassen Sie uns nun lernen, Ausnahmesituationen zu behandeln, die innerhalb eines Promises auftreten. Im Falle des Auftretens einer solchen Situation müssen wir den Promise ablehnen, indem wir eine spezielle Ablehnungsfunktion verwenden, die automatisch in den zweiten Parameter der Promise-Funktion gelangt:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
...
}, 3000);
});
Innerhalb der Promise-Funktion müssen wir
resolve aufrufen, wenn alles normal verlaufen ist, oder
reject, wenn eine Ausnahmesituation
aufgetreten ist:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false;
if (!isError) {
resolve([1, 2, 3, 4, 5]); // Daten des Promises
} else {
reject('error in promise'); // Ihr Fehlertext
}
}, 3000);
});
Dann müssen Sie in der Methode then nicht eine,
sondern zwei Funktionen als Parameter übergeben:
die erste wird ausgeführt, wenn der Promise normal funktioniert hat (erfüllt),
und die zweite - wenn er mit einem Fehler funktioniert hat (abgelehnt):
promise.then(
function(result) {
console.log(result); // gibt das Ergebnis des Promises aus
},
function(error) {
console.log(error); // gibt den Fehlertext aus
}
);
In der Regel wird der obige Code kompakter geschrieben, und zwar so:
promise.then(function(result) {
console.log(result); // gibt das Ergebnis des Promises aus
}, function(error) {
console.log(error); // gibt den Fehlertext aus
});
Erstellen Sie einen asynchronen Code, der Zufallszahlen
von 0 bis 5 generiert.
Wickeln Sie alles in ein Promise. Lassen Sie den Promise als Ergebnis
das Ergebnis der Division von eins durch die generierte Zahl zurückgeben.
Lassen Sie den Promise mit einem Fehler ausgeführt werden,
wenn eine Division durch Null aufgetreten ist, und erfolgreich
in allen anderen Fällen.