Как я могу вызвать асинхронный метод с помощью API геолокации? - PullRequest
0 голосов
/ 20 января 2019

В моем приложении React я хочу иметь возможность вызывать конечную точку API с текущим местоположением пользователя, используя Geolocation API .

У меня есть следующий метод, который срабатывает, когда пользователь нажимает кнопку

findMeetings = async () => {

  const location = window.navigator && window.navigator.geolocation

  if (location) {
    location.getCurrentPosition((position) => {
    let url = `meetings/find?lat=${position.coords.latitude}&lng=${position.coords.longitude}&radius=${this.state.radius}`;
    let result = await fetch(`https://localhost:44303/api/${url}`, {
      method: 'get'
     }).then(response => response.json());
    this.setState({ meetings: result.meetings })
   }, (error) => {

  })
}

Я получаю следующую ошибку:

Ошибка разбора: await - зарезервированное слово

Я думаю, это потому, что я вызываю асинхронный метод внутри getCurrentPosition - может кто-нибудь помочь мне понять, в чем здесь проблема и как я могу ее решить?

1 Ответ

0 голосов
/ 20 января 2019

Это может быть связано с тем, что, хотя родительский метод имеет ключевое слово async (findMeetings), функция location.getCurrentPosition (..) не имеет ключевого слова async.

Так что попытка чего-то подобного может помочь:

location.getCurrentPosition(async position => {
  .. actual code
})

Дайте мне знать, если это работает, ура :) 1006 *

...