Есть класс Lists
class Lists {
constructor (items, failMessage) {
this.items = items;
this.failMessage = failMessage;
}
async requestToServer(url) {
let response = await fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json;charset=utf-8',
});
if (response.ok) this.items = await response.json();
else if (response.status == 422) this.failMessage = await response.json();
}
sendNewData() {
...
( async () => await this.requestToServer(url) )();
console.log( this.failMessage);
}
}
Проблема заключается в том, что интерпретатор js почему-то переходит к строке
console.log( this.failMessage);
, не дождавшись завершения выполнения в строке
( async () => await this.requestToServer(url) )();
.
И в результате в консоль выводится значение свойства
failMessage равное null даже когда статус ответа от сервера 422( что должно вывести текст ошибки. пересылаемый сервером).
Если же я перепишу строку
console.log( this.failMessage);
модифицировав ее Timeout - ом - то все прекрасно отрабатывает.
Подскажите пожалуйста, почему так?