Показать сообщение отдельно
  #1 (permalink)  
Старый 15.11.2018, 01:07
Аватар для Neor
Новичок на форуме
Отправить личное сообщение для Neor Посмотреть профиль Найти все сообщения от Neor
 
Регистрация: 12.11.2017
Сообщений: 8

Проблемы с распараллеливанием.
С сервера получаю информацию о погоде. Естественно все это выполняется в функции, и так как мне бы хотелось сохранить получаемый запрос, то логично его передать через return, но переменная не получает это значение.

cityName.addEventListener('keypress', function(e) {
  if (e.keyCode == ENTER_KEY_CODE) {
    var url = creatingUrl(cityName);
    weather = query(url);
    console.log(weather); //undefined
  }
});

function query(theUrl) {
  xhr.open('GET', theUrl);
  xhr.send();
  xhr.addEventListener('readystatechange', function() {
    if (xhr.readyState != xhr.DONE) {
      return;
    }
    if (xhr.status != 200) {
      console.log('Error? Error!');
    } else {
      var serverAnswer = JSON.parse(xhr.responseText);
      console.log(serverAnswer);
      OtherWeatherData.style.display = 'block';
      requestAccepted(serverAnswer);
      // return serverAnswer;
      return 17;
    }
  })
}
Ответить с цитированием