Мне нужна функция **getJson()** для получения и возврата данных из json.
JSON (файл.json):
[
{
"01/01/2021":"Confraternização Universal",
"15/02/2021":"Carnaval",
"16/02/2021":"Carnaval",
"02/04/2021":"Paixão de Cristo",
"21/04/2021":"Tiradentes",
"01/05/2021":"Dia do Trabalho",
"03/06/2021":"Corpus Christi",
"07/09/2021":"Independência do Brasil",
"12/10/2021":"Nossa Sr.a Aparecida - Padroeira do Brasil",
"02/11/2021":"Finados",
"15/11/2021":"Proclamação da República",
"25/12/2021":"Natal"
}
]
Код:
async function getJson() {
const response = await fetch('file.json');
const data = await response.json();
return data;
}
console.info(getJson());
Выход:
Promise {<pending>}
Код:
var obj;
async function getJson() {
const response = await fetch('file.json');
obj = await response.json();
}
console.info(obj);
Выход:
undefinded
Проверьте мой ответ. Это главная причина. Попробуйте и примите ответ и проголосуйте, если этот ответ вам полезен :)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Async function всегда возвращает Promise. Используйте блок .then(), как показано ниже, чтобы вернуть данные :)
getJson().then(data=>console.info(data);
Эта функция ниже — async, и она вернет обещание. Когда вы пытались console.info(getJson()), в вашем случае возвращается решенное обещание. Чтобы вернуть значение из разрешенного обещания, нам требуется блок .then(), а обратный вызов имеет данные.
async function getJson() {
const response = await fetch('file.json');
const data = await response.json();
return data;
}
getJson().then(data=>console.info(data));
попробуйте
console.info(await getJson())в первом примере иawait getJson(); console.info(obj)во втором