我想知道为什么我从函数返回它的值后无法获取数组?控制台上的输出是一个空数组。
function fetchdates(){
let theDateTime,DatesSepTime,Dates = [];
fetch("./myfile.json")
.then((resp) => {
return resp.json();
})
.then((data) => {
for(let obj of data){
let theDateTime = obj.tweetcreatedts;
let DatesSepTime = theDateTime.split(" ");
let Dates = DatesSepTime[0];
//console.log(Dates);
}
})
return(Dates);
};
console.log(fetchdates());
获取是异步的。
这意味着,它会立即返回,并在异步操作完成时恢复函数执行。因此,如果您直接登录返回值,当然它不会包含处理过的值。
除此之外,您还有另一个问题是Dates
两次声明变量(顺便说一句,您对其他人也这样做,这是不必要的)-首先它是一个空数组(这就是它立即返回的原因,这就是您得到空数组的原因)结果),然后您为其分配不同的值,但这仅在异步方法执行恢复时发生。
我建议阅读:https : //developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句