【发布时间】:2021-01-13 13:30:18
【问题描述】:
我正在尝试使用具有不同查询参数的 FourSquare API 的外部调用来创建多个 JSON 对象,但我的代码一直作为成功的响应代码返回,没有可读的结果。这是我尝试使用的代码:
async function getPlaces(query, lat, lon, clientID, clientSecret, versionDate) {
const URL = `https://api.foursquare.com/v2/venues/search?client_id=${clientID}&v=${versionDate}&ll=${lat},${lon}&intent=browse&radius=10000&query=${query}&limit=10&client_secret=${clientSecret}`;
const response = await fetch(URL).catch(e => { console.log(e) });
const data = await response.json().catch(e => { console.log(e) });
return data;
}
当我像这样调用这个函数来创建一个 JSON 对象时
const beachData = getPlaces("beaches", lat, lon, clientID, clientSecret, versionDate);
然后返回如下:
Promise { <pending> }
我试过了,结果一样
const beachData = getPlaces("beaches", lat, lon, fourSquareClientID, fourSquareClientSecret, versionDate).then(({ beachData }) => { beachData; });
任何关于我做错了什么的指导将不胜感激。如果我没有完全偏离目标,我希望能够多次调用此函数并获取一些 JSON 对象,我稍后可以将响应组合回前端。谢谢!
【问题讨论】:
-
我不明白你怎么知道你需要等待promise返回函数
fetch()却不知道你需要等待promise返回函数getPlaces() -
经过审查,这是一个疏忽,哈哈。工作到很晚,肯定忽略了这一点。谢谢指出,哈哈。
标签: javascript json express async-await