Есть класс 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 - ом - то все прекрасно отрабатывает.
Подскажите пожалуйста, почему так?