await дожидается резолва промиса и возвращает именно данные, которыми промис зарезолвился
async function fn() {
const result = await fetch('https://jsonplaceholder.typicode.com/users');
const response = await result.json();
}
Когда этот запрос возвращает данные, то промис, который вернул fetch, резолвится по средствам вызова своей внутренней функцию resolve(), в аргумент которой передаёт специальный объект, у которого уже есть методы .json, .text и тд.
async function fn() {
const result = await fetch('https://jsonplaceholder.typicode.com/users');
const response = await result.json();
console.log(response);
}
fn();
json Вы применяете к данным, которые этот промис возвращает когда резолвится.