assíncrono / espera sempre retorna promessa

Estou tentando a funcionalidade assíncrona / aguardada. Eu tenho esse código imitando uma solicitação:

const getJSON = async () => {
  const request = () => new Promise((resolve, reject) => (
    setTimeout(() => resolve({ foo: 'bar'}), 2000)
  ));

  const json = await request();
  return json;
}

Quando eu uso o código dessa maneira

console.log(getJSON()); // returns Promise

retorna uma promessa

mas quando eu chamo essa linha de código

getJSON().then(json => console.log(json)); // prints { foo: 'bar' }

imprime json como esperado

É possível usar apenas código comoconsole.log(getJSON())? O que eu não entendo?

questionAnswers(2)

yourAnswerToTheQuestion