Javascript 如何从GoogleAPI获取完美的数据

Javascript 如何从GoogleAPI获取完美的数据,javascript,google-api,Javascript,Google Api,我试图从GooglePlacesAPI(写在JSON上)获取数据。 每个结果都有一个页面,最多包含20个结果。如果有更多的结果,您将有var调用Next_token。下一个标记是指向下一个包含结果的页面的链接。如果没有,则不进行声明。 我试着做这些东西,但没有100%成功 我对JS上的ES5/6有些陌生。所以我尝试获取第一页,然后循环,直到没有更多的结果。 我把代码删掉了,没关系的都删掉了 函数getdatafirsttry(url){ 获取(url{ 方法:“获取” }) 。然后(响应=> r

我试图从GooglePlacesAPI(写在JSON上)获取数据。 每个结果都有一个页面,最多包含20个结果。如果有更多的结果,您将有var调用Next_token。下一个标记是指向下一个包含结果的页面的链接。如果没有,则不进行声明。 我试着做这些东西,但没有100%成功

我对JS上的ES5/6有些陌生。所以我尝试获取第一页,然后循环,直到没有更多的结果。 我把代码删掉了,没关系的都删掉了

函数getdatafirsttry(url){ 获取(url{ 方法:“获取” }) 。然后(响应=> response.json()) 。然后(数据=>{ next_token=data.next_page_token; if(下一个_标记!==未定义){ url='1〕https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=32.0333332,34.7666636&radius=1500&type=restaurant&key=…&fields=opening\u hours,photos,rating.json&pagetoken='+next\u token; toContinue=true; }否则{ toContinue=false } } //下一页标记 函数AllToGeter(url){ getdatafirsttry(url); } getdatafirsttry(url);
伪代码比实际的JS多一点,但概念如下:

const yourGoogleMapsFunction = async (params you need, nextToken, listOfPlaces) => {

let options = {
    method: 'GET',
    uri: "https://maps.googleapis.com/maps/api/nearbysearch/json",
    qs : {
        key: process.env.GOOGLE_API_KEY,
        pageToken: ...,
        radius: ...,
        location: ...
        ...
    },
    json: true
};

let response = await rp(options);

if (response && response.status === "OK" && response.results && response.results.length > 0) {
    listOfPlaces.push(... the results);
    yourGoogleMapsFunction(params you need, response.results...token, listOfPlaces);
}
};
您需要使用{}作为位置列表来调用它,它最终将占据所有位置


也考虑限制到一个最大值,在递归调用< /p>你想同时得到所有的数据吗?是的,在我打开Web应用程序的时候,所有的数据都需要显示出来。