Der Stolperstein

Aus der Sicht von fetch: Was ist (k)ein Fehler?

Die Fehlerbehandlung in der fetch()-API ist gewöhnungsbedürftig. Vielen Entwickler:innen stösst das sauer auf, weil JavaScript-Taliban immer behaupten, fetch() sei einfach zu verstehen.

Wichtig ist, dass man den Stolperstein im Grundsatz begreift:

Der Ablauf des Scriptes läuft auch durch, wenn statt der "richtigen" Antwort von der Ressource ein HTTP-Statuscode (generiert vom Server) oder eine PHP-Fehlermeldung zurückkommt.

Aus der unqualifizierten Sicht von fetch() ist eine Antwort akzeptierbar, wenn irgend etwas zurückkommt. Das Error-Spaghetti ist ziemlich unsensibel, die grundlegenden Fehler im Ping-Pong Spiel zwischen Client und Server gehen ihm durch die Lappen!

Fazit

Das Hinzufügen eines catch(error)-Spaghettis alleine reicht leider nicht aus (s. angedeutetes Beispiel unten). Die Fehlermeldung wird keine relevante Aufklärung über den Ursprung des Problems bringen. Und genau dies ist komisch, weil fetch() als Arbeitstier in Sachen Verbindungs-Aufnahme angepriesen wird.

fetch('examples/example.php')
.then(response => {
	// ... irgend etwas ...
})
// Error-Spaghetti 
.catch(error => {
	console.log(‘Es ist ein Fehler aufgetreten: ', error);
});