Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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_Algorithm_Ecmascript 6 - Fatal编程技术网

Javascript 函数返回数组的空值或未定义的值

Javascript 函数返回数组的空值或未定义的值,javascript,algorithm,ecmascript-6,Javascript,Algorithm,Ecmascript 6,下面是传递给某个耗费时间的进程后的示例,数组的值返回为空 function myFunction() { let myArray = []; let pastArray = [1, 2, 6, 7, 8, 1, 9, 6, 0] pastArray.forEach(item =>{ setTimeout(function(){ myArray.push(item) }, 10000); }) return myArray; } 下面是打印函数输出的代码…需要帮助 c

下面是传递给某个耗费时间的进程后的示例,数组的值返回为空

function myFunction() {
  let myArray = [];
  let pastArray = [1, 2, 6, 7, 8, 1, 9, 6, 0]
 pastArray.forEach(item =>{

setTimeout(function(){ myArray.push(item) }, 10000);
 })
  return myArray;
} 

下面是打印函数输出的代码…需要帮助

console.log(myFunction())  

让myArray=[];//空数组
函数myFunction(){
让pastArray=[1,2,6,7,8,1,9,6,0];//默认数组值
让timeoutVal=10000;//默认开始时间
设addTime=10000;//在循环中添加超时的时间
pastArray.forEach(项=>{
setTimeout(函数(){
addMyArray(item);//在计算的超时后调用数组推送函数
},timeoutVal);
timeoutVal=timeoutVal+addTime;//将时间添加到下一项。
});
}
函数addMyArray(项){
myArray.push(项目);
log(myArray);
}

myFunction();//调用第一个函数,即开始读取pastArray并设置超时。
不清楚要实现什么。请详细说明你期望什么?您正在将
myArray
初始化为空数组
[]
,并异步推送值。因此,当您调用
return
时,您的
push
仍有10秒钟未执行。阅读有关执行堆栈和eventqueue@AbhishekSharma我想在控制台上调用我的函数后显示数组值(array myArray)。@derpirscher当然,我现在想要的是当我调用我的函数以获得值时,即使它们的延迟为10秒,唯一的方法是使用async/await或回调。如果每次迭代都增加超时,会有什么区别<在
myFunction
返回后,code>myArray仍将是空数组。此外,它不只是发布一堆随机的代码,而是要解释为什么一个答案可以解决最初的问题