Как получить API и использовать значение, полученное в другой функции? - PullRequest
0 голосов
/ 28 октября 2018

Я использую новый интерфейс fetch от ES6 для получения геолокации МКС (Международная космическая станция) и рендеринга внутри Карт Google, но я не знаю, как перейти к другому функция значение iss_position .

export async function currentPosition() {
  const fetchResult = fetch('http://api.open-notify.org/iss-now.json');
  const response = await fetchResult;
  const iss_position = await response.json();
}

export function initMap() {
  let map = new google.maps.Map(document.getElementById('map'), {
    center: iss_position,
    zoom: 5,
  });
  let marker = new google.maps.Marker({
    position: iss_position,
    map: map,
  });
}

currentPosition();
initMap();

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Это должно работать:

async function currentPosition() {
  const fetchResult = fetch('http://api.open-notify.org/iss-now.json');
  const response = await fetchResult;
  const data = await response.json();
  const { latitude, longitude } = data.iss_position;
  initMap(latitude, longitude);
}

function initMap(latitude, longitude) {
  let map = new google.maps.Map(document.getElementById('map'), {
    center: { lat: latitude, lng: longitude },
    zoom: 5,
  });
  let marker = new google.maps.Marker({
    position: { lat: latitude, lng: longitude },
    map: map,
  });
}

currentPosition();

export { currentPosition, initMap };
0 голосов
/ 28 октября 2018
async function currentPosition() {
  const fetchResult = fetch('http://api.open-notify.org/iss-now.json');
  const response = await fetchResult;
  const iss_position = await response.json();
  // Calling initMap with iss_position
  initMap(iss_position);
}

function initMap(iss_position) {
  let map = new google.maps.Map(document.getElementById('map'), {
    center: iss_position,
    zoom: 5,
  });
  let marker = new google.maps.Marker({
    position: iss_position,
    map: map,
  });
}

currentPosition();

// Please check if this write way to export multiple things or not.
// I'm a NodeJS developer and this is how we do in node.
export = {
    currentPosition,
    initMap
}
...