我正在使用带有Node的Google Maps API来获取特定位置的格式化地址。当找不到匹配的位置时,Maps API会返回一个空数组,因此我尝试使用以下代码在响应数组为空时抛出错误:
function timeZoner(queryString) {
const mapsApiKey = 'API_KEY';
const googleMapsClient = require('@google/maps').createClient({
key: mapsApiKey
});
const VError = require('VError');
googleMapsClient.geocode({
address: queryString
}, function(err, response) {
if (!err) {
returnedResults = response.json.results;
if (returnedResults.length < 1) {
console.log('no match found');
var err1 = new Error;
}
var err2 = new VError(err1, 'no matched location');
console.log(err2.message);
} else {
console.log('Maps API error');
}
});
};
timeZoner('this location name will not match');
根据上面的示例,控制台将记录“找不到匹配项”&#39;正如预期的那样,err1
永远不会被设置,或者至少没有触发err2
并在控制台中记录其消息,因为我认为它应该基于the VError docs。有人可以提供有关错误未被触发的原因的见解吗?
我无法解决Node中的错误,因为我对JS相对较新,而且我是Node的新手。我知道error-first callbacks并且看到googleMapsClient.geocode
可能是错误未触发的原因,但我认为VError应该有助于此。我感谢任何帮助。