使用异步遇到问题等待着与谷歌地图API的地理编码

问题描述 投票:1回答:1

我使用谷歌地图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> } 我是新来使用异步等待,我不知道如果我在这里做一些不正确。任何帮助非常感谢!

node.js async-await google-geocoder
1个回答
1
投票

异步函数总是返回一个承诺或包装的返回值进入的诺言,你要解决这样的承诺

 const geoResponse = getGeoCode(req.body.address, errors, res);

    geoResponse.then((result)=>{

    console.log(result)
    }).catch((err)=>{
     console.log(err);
    })
© www.soinside.com 2019 - 2024. All rights reserved.