0
約束事の機能であるthen
で発生するエラーをどう対処しますか?例えば機能のエラーを約束します
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');
}
、どのように私はエラーを投げthis._parse
に対処するのですか?私は約束のcatch
の機能はreject
ハンドラを扱うと思った。 then
にスローされたエラーも処理しますか?
O.T.しかし関連しています: 'callback'を渡す必要はありません。 'getLocationId(lat、lon、errorHandler)'の代わりに 'getLocationId(lat、lon).catch(errorHandler)'と全く同じ効果が得られます。 –