【发布时间】:2020-08-07 14:09:32
【问题描述】:
dataArr = []
let element;
function Users()
{
let url = 'https://randomuser.me/api'
fetch(url).then((response) =>{
return response.json();
}).then((data) =>{
dataArr.push(data['results']);
})
}
for (let i = 0; i < 5; i++) {
Users()
}
console.log(dataArr);
function profileIter(values) {
let nextIndex = 0;
if(nextIndex < values.length){
return {
value: values[nextIndex++],
done: false
}
}
else{
return {
done: true
}
}}
const CVIter = profileIter(dataArr);
console.log(CVIter.next().value);
运行后出现错误提示
CVIter.next() 不是函数
【问题讨论】:
-
profileIter不返回具有next()函数的对象 -
把问题转过来... 为什么你期望
next成为那个对象的一个函数?您希望该功能做什么? -
我预测以后会有其他问题,
fetch是异步的,你会想知道为什么dataArr是空的(只是为了让你有好的关键字来搜索这个多次被问到的问题) -
有一个函数 users 从 api 请求随机用户的数据我请求 5 次这样的数据并想要一个迭代器,以便我可以一个一个地记录用户的数据 - @David
-
@Nav:不。你收到错误是因为
profileIter返回一个没有next函数的对象字面量。
标签: javascript iterator typeerror