我使用谷歌地图API的地理编码,并尝试使用异步的await。我定义了几个用于处理请求:
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);
该函数的AWAIT部分工作不正常。如果我控制台日志geoResponse我得到Promise { <pending> }
我是新来使用异步等待,我不知道如果我在这里做一些不正确。任何帮助非常感谢!
异步函数总是返回一个承诺或包装的返回值进入的诺言,你要解决这样的承诺
const geoResponse = getGeoCode(req.body.address, errors, res);
geoResponse.then((result)=>{
console.log(result)
}).catch((err)=>{
console.log(err);
})