我正在尝试处理从API网址接收的JSON数据(这是我第一次处理此类工作)
以下函数返回一个包含20个元素的数组的诺言:
const articles = () => {
return fetch(url)
.then(res => res.json())
.then(post => post.articles);
};
控制台视图:
现在,我想从数组中提取元素-我尝试过类似的操作:
articles()[0] .name
但是这不起作用,我不确定是否有其他解决方法?感谢您的帮助。谢谢
答案 0 :(得分:2)
您的articles
功能会返回一个承诺。您必须消费承诺(more on MDN):
articles().then(articleArray => {
console.log(articleArray);
});
或在async
function内:
const articleArray = await articles();
console.log(articleArray);
旁注:您的fetch
代码缺少对HTTP成功的检查(HTTP失败不是拒绝)。到目前为止,您不是唯一错过这张支票的人,以至于I've written a post on my anemic blog about it。带有支票:
const articles = () => {
return fetch(url)
.then(res => {
if (!res.ok) {
throw new Error("HTTP error " + res.status);
}
return res.json();
})
.then(post => post.articles);
};