Показать сообщение отдельно
  #7 (permalink)  
Старый 20.02.2017, 13:50
Аватар для villiwalla
Интересующийся
Отправить личное сообщение для villiwalla Посмотреть профиль Найти все сообщения от villiwalla
 
Регистрация: 16.02.2016
Сообщений: 29

Сообщение от Rise Посмотреть сообщение
villiwalla, так в какой теме плохо разобрался в классах или асинхронном коде, зачем их смешал тогда, разберись по отдельности; даже если запишешь ответ в переменную объекта, сразу (синхронно) его не получишь, а получишь не сразу (асинхронно); самый примитивный пример асинхронности это setTimeout тренируйся на нем если не понимаешь что это такое:
var requestTime = 5000;
var responseText = 'сразу (синхронно)';

setTimeout(function(){
    responseText = 'не сразу (асинхронно)';
    alert('2. ' + responseText);
}, requestTime);

alert('1. ' + responseText);

// ты ожидаешь такой ответ '1. не сразу (асинхронно)' но это не верно.
Эту ошибку, я уже понял. Меня сейчас интересует, как можно записать ответ в перемеренную внутри объекта.

var Valute = function () {
this.response = null; // = xhr.responseText

var that = this.response;

 this.sendRequest = function () {
            var xhr = this.createRequest();
                xhr.open('GET', this.url, true);
                xhr.onreadystatechange = function () {
                if(xhr.readyState == 4 && xhr.status == 200) {
                   that = xhr.responseText;  // undefined
                }
            };
            xhr.send(null);
        };

};
Ответить с цитированием