Wie gehen wir mit Fehlern um, die in der then
Funktion eines Versprechens auftreten?Verspricht Fehler in der Funktion
getLocationId(lat, lon, callback)
{
let self = this;
return this._geocoder.reverse({lat: lat, lon: lon})
.then(this._parse)
.catch(function(err) {
callback(err);
});
}
_parse(res)
{
if (res.length < 1)
throw new Error('No results from Maps API');
let value = res[0].administrativeLevels;
if (!value || value.length < 1) {
throw new Error('No administrative levels available');
}
if ('level2long' in value)
return value.level2long;
if ('level1long' in value)
return value.level1long;
throw new Error('No suitable location found');
}
Zum Beispiel: Wie kann ich mit this._parse
werfen einen Fehler umgehen? Ich dachte, die catch
Funktion des Versprechens behandelt nur die reject
Handler. Behandelt es auch Fehler, die in der then
geworfen werden?
O. T. aber verwandt: Es ist nicht notwendig, "Callback" zu übergeben. Statt 'getLocationId (lat, lon, errorHandler)' wird mit 'getLocationId (lat, lon) .catch (errorHandler)' genau der selbe Effekt erreicht. –