#javascript #node.js #json #asynchronous #fetch
#javascript #node.js #json #асинхронный #выборка
Вопрос:
Я наткнулся на проблему, когда я пытался проанализировать входящий объект .JSON в асинхронном запросе Fetch-Get, он выдал мне следующую ошибку в браузере:
Uncaught (in promise) SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
at window.getData (Login.js:32)
at async window.login (Login.js:38
Это соответствующий предварительно просмотренный код:
window.getData = async function()
{
var response = await fetch("https://goldengates.club:3000/api/blocks");
var chain = await response.json();
var chainParsed = JSON.parse(chain);
return chainParsed;
}
window.login = async function()
{
const chain = await getData(); //might need to parse this
console.log(chain);
}
Функция входа в систему, описанная выше, вызывается при нажатии кнопки во внешнем интерфейсе.
Я, очевидно, делаю что-то не так, и это меня беспокоит, я довольно новичок в асинхронной обработке, и любая помощь очень ценится.
Комментарии:
1.
response.json()
анализирует строковые данные в объект JavaScript.JSON.parse()
пытается проанализировать уже проанализированные данные. Исправьте это, удаливJSON.parse()
строку и вернувchain
.
Ответ №1:
Похоже, ошибка возникает из-за последних двух строк windows.getData
.
Возможно, вашим мотивом было вернуть свойства из этого api, упомянутого в var
ответе.
const url = ""https://goldengates.club:3000/api/blocks"";
window.getData = async () =>
{
var response = await fetch(url);
var chain = await response.json();
return (
{chain.map((everyChain) => {
const { timestamp, lasthash, hash, data, nounce, difficulty, type } = everyChain;
return everyChain;
}});
}