class Test {
constructor(){
this.data = null;
}
method1 (){
let xhr = new XMLHttpRequest();
xhr.open('GET', '/article/xmlhttprequest/example/load');
xhr.send();
xhr.onload = ()=> {
if (xhr.status != 200) {
alert(`Ошибка ${xhr.status}: ${xhr.statusText}`); // Например, 404: Not Found
} else {
console.log(`Готово, получили ${xhr.response.length} байт`); // response -- это ответ сервера
this.data = xhr.response.length
}
};
}
method2(){
console.log(this.data + " method2 ")
}
method3(){
console.log(this.data + " method3 ")
}
}
const t = new Test()
t.method1()
//t.method2()
//t.method3()
class Test {
constructor() {
this.data = null;
}
method1() {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open('GET', '/article/xmlhttprequest/example/load');
xhr.onload = () => {
if (xhr.status != 200) {
alert(`Ошибка ${xhr.status}: ${xhr.statusText}`);
reject(); // облом!
} else {
console.log(`Готово, получили ${xhr.response.length} байт`);
this.data = xhr.response.length
resolve(); // выполнили обещание!
}
};
xhr.send();
})
}
method2() {
console.log(this.data + " method2 ")
}
method3() {
console.log(this.data + " method3 ")
}
}
const t = new Test()
t.method1()
.then(() => t.method2())
.then(() => t.method3())
async function main() {
const t = new Test();
await t.method1();
t.method2();
t.method3();
}
main();