ich mit dem Versprechen habe SchwierigkeitenNodeJS Promise() Fehler beim Schlucken
den folgenden Ausschnitt mit:
Promise.resolve()
.then(a("OK1"))
.then(a("OK2"))
.then(a("OK3"))
.then(a("OK4"))
.then(a("OK5"))
.then(function() {
console.log("FINISH");
})
.catch(function(e) {
console.log("ERROR: " + e);
});
function a(i) {
return new Promise(function(resolve, reject) {
if(i == "OK4") {
console.log("THROW");
throw('Error'); //This does not happen
reject();
return;
}
if(i == "OK2") {
reject()
return;
}
console.log(i);
resolve();
});
}
Ich möchte ein Versprechen ablehnen können - dann ist der nächste .then
wird ausgeführt ("OK3") aber ich bin nicht in der Lage, Ausnahmen zu werfen - ich möchte das .catch auf "OK4"
OK4 - wird abgelehnt und nicht ausgegeben, aber OK5 wird noch ausgeführt - gibt es einen Weg dazu?
dies würde meine erwartete Ausgabe sein:
OK1
OK3
ERROR: ....
Sie müssen eine Funktion an "dann" übergeben, kein Versprechen. Sie führen alle Ihre Funktionen ohne Verkettung aus. – Bergi
ok und wie würde ich mit einer async-Funktion umgehen? Funktion a (x) { setTimeout (function() {// HOW VON HIER LÖSEN }, 2000?); –
Sie müssen es in einen 'Promise'-Konstruktoraufruf einbinden, genau wie Sie es in Ihrer Frage getan haben, so dass' resolve' durch Schließen verfügbar ist. Nicht sicher, dass ich die Frage verstehe? – Bergi