Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как ответ полученный с сервера в Ajax запросе записать в свойства класса?

Артем Кундакчан Ученик (89), закрыт 5 лет назад
Написал класс для работы с Ajax запросами все работает, только после выполнения метода "GET" класса Ajax необходимо данные полученные с сервера записать в свойства "res" того же класса, но на деле в свойства "res" ничего не записывается, подскажите как это исправить?
Лучший ответ
Остальные ответы
забань плиз Мыслитель (6203) 5 лет назад
операция асинхронная.
проще передавать вторым аргументом callback и вызывать его, когда всё завершится.
Viktor Ilukhin Мастер (1468) 5 лет назад
а кто вас так учил с ajax работать? вы про jQuery слышали?
Артем КундакчанУченик (89) 5 лет назад
Слышал, я пробую собственные классы писать для работы с Ajax
Viktor Ilukhin Мастер (1468) а зачем?
Leo Khan Гуру (3827) 5 лет назад
Тоже давно пробовал писать подобное.
Пытался сделать как в jQuery, даже код сохранился ))

На, вот, если интересно ) https://jsfiddle.net/t9w8hudj/
Ярослав Искусственный Интеллект (107837) 5 лет назад
Эх, велосипедостроители...
class Ajax {
 get(url) { return this.request('GET', url); }
 post(url, params) { return this.request('POST', url, params); }

 request(method, url, params) {
  const ctx = this;
  return new Promise((resolve, reject) => {
   const xhr = new XMLHttpRequest();
   xhr.open(method, url);
   xhr.onreadystatechange = function () {
    if (this.readyState !== 4)
     return;
    ctx.status = this.status;
    ctx.responseText = this.responseText;
    if (this.status === 200)
     resolve(this.responseText);
    else
     reject(this.status);
   }
   xhr.send(params);
  });
 }
}

const ajax = new Ajax();
ajax.get('/').then(console.log).catch(alert);

Это уже реализовано в виде стандартного fetch, причем более гибко.
Leo KhanГуру (3827) 5 лет назад
Это не велостроительство, а желание понять. Промисы и феч это сахар. Для расширения кругозора посмотри их полифилы.
Ярослав Искусственный Интеллект (107837) Это велосипедостроение, причем махровое. Что именно "понять" - как писать говнокод вместо изучения стандартных возможностей ЯП?
Похожие вопросы