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仍将是空数组。此外,它不只是发布一堆随机的代码,而是要解释为什么一个答案可以解决最初的问题