Javascript 数组上有元素,但其长度为零
我找不到修复这个错误的方法,我尝试了很多东西,但都不起作用,IDK我做错了什么 我有一个函数,它应该返回带问题的对象数组,但它返回长度为0的数组,所以我不能对它进行迭代。我正在使用axios进行api调用 我还在数组对象中对难度属性进行气泡排序,所以它从简单开始,到困难Javascript 数组上有元素,但其长度为零,javascript,arrays,api,object,axios,Javascript,Arrays,Api,Object,Axios,我找不到修复这个错误的方法,我尝试了很多东西,但都不起作用,IDK我做错了什么 我有一个函数,它应该返回带问题的对象数组,但它返回长度为0的数组,所以我不能对它进行迭代。我正在使用axios进行api调用 我还在数组对象中对难度属性进行气泡排序,所以它从简单开始,到困难 让getQuestions=()=>{ 让问题=[]; axios .get('https://opentdb.com/api.php?amount=10') 。然后((res)=>{ for(设i=1;i
让getQuestions=()=>{
让问题=[];
axios
.get('https://opentdb.com/api.php?amount=10')
。然后((res)=>{
for(设i=1;iconsole.error(err));
回答问题;
};
log(getQuestions())代码>
如果您使用的是返回值,那么问题是axios需要时间从API获取数据,但同时控件向前移动并执行返回语句,此时问题的值为[]。我建议使用异步等待语法而不是then()回调。您只需等待API的响应,当收到响应时,只需返回函数的响应。HTTP请求是异步的。您的console.log
发生在执行回调代码之前。此时长度仍然为0。在控制台中,单击并展开数组时,确实会找到内容,因为在展开时,数组已填充。但是当执行console.log
时,它不在那里。