#javascript #json
Вопрос:
Я пытаюсь создать функцию, которая берет данные из локального .json
файла. Моя products.json
-да . Это функция, которую я пытаюсь определить:
async function getJSON_Format(){
let response = await fetch(api);
let data = await response.json();
// console.log(data);
return data;
}
api
это путь к файлу products.json
. То, что я пытаюсь сделать, — это получить все данные от продуктов.json и сохраните его в объектной переменной JSON , подобной этой let json_object = getJSON_Format();
, но она возвращает обещание.
Что я мог с этим поделать?
Комментарии:
1. Пожалуйста, обратите внимание, что когда вы используете «объект JSON», вы имеете в виду «объект JS».
2. Отмеченная функция
async
всегда возвращает обещание. Возвращаемый тип неjson
является , он естьPromise<json>
.3.
getJSON_Format
не вернет «формат JSON». Он вернет объект JS.4. Просто действительно заметил, что
json
метод api выборки, который возвращает [обещание] объекта javascript, действительно не помогает новичку понять разницу, не так ли @evolutionxbox ! вздыхать.5. @jamiec Увековечение распространенного недоразумения тоже не помогает
Ответ №1:
Ваша функция async
такова, что вам это нужно await
. Так что:
let obj = await getJSON_Format();
Который сам по себе должен быть в async
функции.
Другой вариант-рассматривать его как Promise
и использовать then
getJSON_Format().then(obj => {
// do something with obj here
});
Пожалуйста, обратите внимание, что я изменил имена ваших переменных с json_object
просто obj
на . Понятие «объект JSON» является неправильным. Что-то является либо JSON (текст), либо объектом (Javascript)
Комментарии:
1. Я попробовал первый вариант и написал
console.log(obj)
, и ничего не изменилось