Javascript JS函数直到最后才运行,而在
我有一个for块,它迭代对象列表。每个对象的名称将显示在div(#控制台)中 代码运行时,将实时输出console.log。然而,似乎应该将数据附加到#控制台的方法只有在for块完成后才会执行 如何使doSomething()也实时运行Javascript JS函数直到最后才运行,而在,javascript,sorting,Javascript,Sorting,我有一个for块,它迭代对象列表。每个对象的名称将显示在div(#控制台)中 代码运行时,将实时输出console.log。然而,似乎应该将数据附加到#控制台的方法只有在for块完成后才会执行 如何使doSomething()也实时运行 for(var i = 0; i < objectList.length; i++) { console.log(objectList[i]); // this runs immediately doSomething(objectLis
for(var i = 0; i < objectList.length; i++)
{
console.log(objectList[i]); // this runs immediately
doSomething(objectList[i]); // this runs only AFTER the loop completes
}
function doSomething(obj)
{
$("#console").append(obj.name);
// other stuff
}
for(var i=0;i
您的代码阻止DOM呈现,直到它完成执行,这就是为什么只有在循环完成后才能看到#console
呈现
您可以使用setTimeout
让DOM呈现,并执行如下操作:
var objectList=[{name:'hello'},{name:'world'}];
函数loopThroughList(){
var i=0;
变量循环=函数(){
如果(i>=objectList.length){
返回;
}
log(objectList[i]);
doSomething(objectList[i]);
setTimeout(循环,0);
i++;
};
loop();
}
功能剂量测定法(obj){
$(“#控制台”).append(对象名称);
}
loopThroughList()代码>
它的工作原理,请看这里的一个例子:它只是console.log,它的工作原理是预期的。你能在JSFIDLE或Codepen上的工作演示中提出你的问题吗?可能重复的只有在循环完成后才会运行-不是这样-问题是页面呈现timing@ObsidianAgeJaramonda X是正确的,Abhishek Kumar的JSFIDLE删除了附加到DOM的jQuery,这样就解决了问题。