Всем привет. Есть следующий код:
(async () => {
const response = await fetch('https://jsonplaceholder.typicode.com/users');
console.log(response); // экземпляр объекта Response
})();
Вопрос: как именно await присваивает в переменную результат выполненного промиса? Вот смотрите, await дожидается выполнения промиса, дождалось, то есть у нас есть зарезолвленный экземпляр объекта Promise. Но... как именно у await получается вот так взять и достать результат этого зарезолвленного экземпляра и положить его в переменную? Ну я вот просто вообще не вижу здесь любого другого способа, как обратиться к свойству [[PromiseResult]] и взять значение этого свойства. Но оно же ведь недоступно? Я не хочу это просто так понимать, ну мол вот так await работае и все. Хочу копнуть глубже. И я знаю, что async/await построены на промисах и генераторах, при этом всё равно не понимаю, как у await получается достать результат Промиса. Объясните пожалуйста?