我需要使用从服务器通过fetch返回的JSON来构建HTML,但我不知道如何仅从中访问这些人的名字。
Symbol(Symbol.iterator))
fetch(URL)
.then(res => res.json())
.then(data => console.log(data))
/*logs:
(3) [{…}, {…}, {…}]
0: {title: "Patrick"}
1: {title: "Ben"}
2: {title: "Jeffree"}
length: 3
__proto__: Array(0)
*/
.then(function(data) {
console.log(typeof data); //undefined
let arr = Array.from(data); //Uncaught (in promise) TypeError: Cannot convert
//undefined or null to object
})
起初,我尝试对其进行迭代,因为它(data
)看起来像数组,但得到了Uncaught (in promise) TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
。
这是一个异步问题,这就是为什么data
未定义的原因?我发现由于可以正确记录它,因此在我尝试将其转换为数组时应该已经解决了。
答案 0 :(得分:1)
console.log
返回undefined
。您需要在登录后返回data
,以便用data
而不是undefined
fetch(URL)
.then(res => res.json())
.then(data => {console.log(data); return data})
.then(data => {
console.log(typeof data)
})
Promise.resolve(1).then(console.log).then(x => console.log(1, typeof x))
Promise.resolve(2).then(tap).then(x => console.log(2, typeof x))
function tap(x) {
console.log(x);
return x;
}