Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 JS函数直到最后才运行,而在_Javascript_Sorting - Fatal编程技术网

Javascript JS函数直到最后才运行,而在

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块,它迭代对象列表。每个对象的名称将显示在div(#控制台)中

代码运行时,将实时输出console.log。然而,似乎应该将数据附加到#控制台的方法只有在for块完成后才会执行

如何使doSomething()也实时运行

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,这样就解决了问题。