Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组上有元素,但其长度为零_Javascript_Arrays_Api_Object_Axios - Fatal编程技术网

Javascript 数组上有元素,但其长度为零

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

我找不到修复这个错误的方法,我尝试了很多东西,但都不起作用,IDK我做错了什么

我有一个函数,它应该返回带问题的对象数组,但它返回长度为0的数组,所以我不能对它进行迭代。我正在使用axios进行api调用

我还在数组对象中对难度属性进行气泡排序,所以它从简单开始,到困难

让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
时,它不在那里。