Es folgt ein Beispiel:In der Promise von Javascript, warum kann der Fehler nicht an die nächste Kette `.catch()` weitergegeben werden?
var promise = new Promise(function(resolve, reject) {
throw new Error('test');
});
promise.catch(function(error) {
console.log(error + ' 1 ');
return error
}).catch(function(error) {
console.log(error + ' 2 ');
return error
})
Das Ergebnis für die Codes sind:
Error: test 1
Wie zu sehen ist, wird der zweite catch
Anruf nicht. Bedeutet das, dass Promise Fehler nicht mit der Kettensyntax von catch
behandeln kann? Gibt es eine Möglichkeit, den aktuellen Fehler zum nächsten catch()
Aufruf zu übergeben?
Sie wiederholen den Fehler nie erneut. Warum sollte ein Rückgabewert als Fehler angesehen werden? Verwenden Sie 'throw error;' stattdessen und Sie sollten das erwartete Verhalten erhalten. – Luaan
Mögliches Duplikat von http://stackoverflow.com/questions/35042068/why-is-onwiedergegeben-not-called-following-promise-all-where-promise-reject-incl – guest271314
Wenn Sie * etwas * von 'fangen' zurückbringen , Sie sagen, dass Sie das Problem behandelt haben, und dies ist der Wert, um damit fortzufahren. Wenn Sie das Problem nicht behoben haben, * wiederholen * und nicht zurück. –