Как получить значение responseText из вне

247
06 марта 2018, 06:03

есть код

function getXHR() {
  var xmlHttp;
  try {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
    } catch (E) {
      xmlHttp = false;
    }
  }
  if (!xmlHttp && typeof XMLHttpRequest !== 'undefined') {
      xmlHttp = new XMLHttpRequest();
  }
  return xmlHttp;
}
function getData (url) {
    var xmlHttp = getXHR();
    var json;
    xmlHttp.onreadystatechange = function() {
      if(xmlHttp.readyState === 4 && xmlHttp.status === 200) {
          return JSON.parse(this.responseText);
      }
    };
    xmlHttp.open('GET', url, true);
    xmlHttp.send();
}
var temperatureData = getData('data/temperature.json');
console.log(temperatureData)

temperatureData undefined, понимаю, что запрос асинхронный, но как все таки засунуть JSON.parse(this.responseText) в переменную без промисов

Answer 1

На момент вызова console.log(temperatureData), переменная temperatureData еще не получена и равняется undefined. Такова особенность асинхронной работы js. что-бы присвоить в эту переменную переменную надо

if(xmlHttp.readyState === 4 && xmlHttp.status === 200) {
      const temperatureData = JSON.parse(this.responseText);
      return temperatureData;
  }
READ ALSO
Как сделать Drag для всех div?

Как сделать Drag для всех div?

как сделать перетаскивание всех div элементов?

294
Поворот текста на Canvas

Поворот текста на Canvas

Есть Canvas, на котором отрисовывается изображениеНа изображение можно накладывать текст

294
отобразить 10 персонажей swapi.co

отобразить 10 персонажей swapi.co

Не получается подтянуть 10 персонажей, получается одного либо всех, помогите плеас

239
Как закрепить всплывающую подсказку floatTip?

Как закрепить всплывающую подсказку floatTip?

Добрый день! Скачал пример всплывающей подсказки с форума, но беда в том, что она у меня прыгает (точнее мерцает) и двигается вправо-влевоХотелось...

414