在 Google 地图地理编码 API 中使用异步等待时遇到问题
Having trouble using async await with Google Maps Geocode API
我正在使用 Google 地图地理编码 API 并尝试使用异步等待。我已经定义了几个函数来处理请求:
function googleGeoCode(address) {
const googleMapsClient = require('@google/maps').createClient({
key: 'googleMapsApiKeyGoesHere',
Promise: Promise
});
return googleMapsClient.geocode({ address: address }).asPromise();
}
async function getGeoCode(address, errors, res) {
try {
const result = await googleGeoCode(address);
return result;
} catch (error) {
errors.googleMapsClient = error;
return res.status(400).json(errors);
}
}
然后我在我的快速路线中使用 getGeoCode 函数:
const geoResponse = getGeoCode(req.body.address, errors, res);
函数的等待部分无法正常工作。如果我控制台日志 geoResponse 我得到 Promise { <pending> }
我是 async await 的新手,我不确定我在这里做的事情是否不正确。非常感谢任何帮助!
异步函数总是 return 承诺或将 return 值包装到承诺中,你必须像这样解决承诺
const geoResponse = getGeoCode(req.body.address, errors, res);
geoResponse.then((result)=>{
console.log(result)
}).catch((err)=>{
console.log(err);
})
我正在使用 Google 地图地理编码 API 并尝试使用异步等待。我已经定义了几个函数来处理请求:
function googleGeoCode(address) {
const googleMapsClient = require('@google/maps').createClient({
key: 'googleMapsApiKeyGoesHere',
Promise: Promise
});
return googleMapsClient.geocode({ address: address }).asPromise();
}
async function getGeoCode(address, errors, res) {
try {
const result = await googleGeoCode(address);
return result;
} catch (error) {
errors.googleMapsClient = error;
return res.status(400).json(errors);
}
}
然后我在我的快速路线中使用 getGeoCode 函数:
const geoResponse = getGeoCode(req.body.address, errors, res);
函数的等待部分无法正常工作。如果我控制台日志 geoResponse 我得到 Promise { <pending> }
我是 async await 的新手,我不确定我在这里做的事情是否不正确。非常感谢任何帮助!
异步函数总是 return 承诺或将 return 值包装到承诺中,你必须像这样解决承诺
const geoResponse = getGeoCode(req.body.address, errors, res);
geoResponse.then((result)=>{
console.log(result)
}).catch((err)=>{
console.log(err);
})