我正在使用Google Maps Geocode 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> }
我是使用异步等待的新手,我不确定在这里是否做错了什么。非常感谢您的帮助!
答案 0 :(得分:1)
异步函数总是返回一个promise或将返回值包装为promise,您必须像这样解决promise
const geoResponse = getGeoCode(req.body.address, errors, res);
geoResponse.then((result)=>{
console.log(result)
}).catch((err)=>{
console.log(err);
})