Получить рекурсию, используя javascript для вызова Google Place API - PullRequest
1 голос
/ 08 апреля 2020

Мне нужно получить список результатов из запроса API Google Place. API позволяет получать 20 результатов на страницу, и мне нужны все результаты, поэтому мне нужно go перейти к следующей странице. Следующая страница доступна с токена, указанного в ответе на предыдущий запрос. Я реализовал код ниже:

function request(url){
  return fetch(url)
    .then((response) => response.json())
    .catch((error) => console.log(error))
}

Это моя рекурсивная функция:

export function getListOfActivitiesInACity(city_name,nextPageToken,datas){
  const first_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=activity+in+'+city_name+'&key='+ API_TOKEN +'&language=fr'
  const next_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?pagetoken='+nextPageToken+'&key='+ API_TOKEN
  var url = nextPageToken ===''? first_url : next_url;
  return request(url)
      .then((data) => {
      const newData = [...datas, data];
      if(data["next_page_token"] !== undefined){
        return getListOfActivitiesInACity(city_name,data["next_page_token"],newData);
      }
      return newData;
    })
}

А затем я вызываю свою функцию и печатаю результаты

var datas=[];
    getListOfActivitiesInACity("Lyon",'',datas)
    .then(data => {console.log(data);})

Первая итерация выборки работает нормально и дает мне хороший новый URL для следующей выборки (я попробовал это на моем более широком руководстве, и это работает) Но вторая выборка возвращает мне это:

Object {
  "html_attributions": Array [],
  "results": Array [],
  "status": "INVALID_REQUEST",
}

Я действительно не понимаю, почему это не работает, поэтому, пожалуйста, кто-нибудь может помочь Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...