мы как будто о разном пишем.
ты асинхронный вызов сохраняешь в переменную response. при выполнении кода образуется абстрактное синтаксическое дерево. среда исполнения жс дожидается получения результата в переменную синхронно, чтобы сохранить результат в оперативную память, возможно так