Задача простая, запустить страницу, обратиться к файлу test.php который вернет массив JSON (задержка специально стоит 1 сек) и после этого выполнить все остальные методы объекта app . Проблема у меня снова с асинхронностью. Помогите её решить. То есть, после того, как мы получили массив чисел, надо начинать run().
let app = {
items: [],
init(){
this.getData()
},
request(){
return new Promise(function (resolve, reject) {
let xhr = new XMLHttpRequest();
xhr.open('POST', '/test.php'); //[1,2,3,4,5]
xhr.onload = resolve;
xhr.onerror = reject;
xhr.send();
});
},
getData(){
this.request()
.then(function(e){
console.log(e.target.response); // тут выводится массив
this.items = e.target.response; //Uncaught (in promise) TypeError: this.createItems is not a function
this.run();
},function(e){
console.log(e.target.response);
});
},
run(){
console.log('START');
console.log(this.items);
}
}
app.init();
Из-за чего выводится такая ошибка?