Javascript jqueryeach";“睡眠”;里面有回调

Javascript jqueryeach";“睡眠”;里面有回调,javascript,jquery,callback,each,sleep,Javascript,Jquery,Callback,Each,Sleep,我有一个each(),里面有一个回调函数。 我希望每个()都通过回调同步。 我把我的例子贴在这里 函数insRow(rif,回调){ setTimeout(函数(){ $(rif+“tr:n个孩子(2)”; var newtr=$(rif+“tr:nth child(2)”).clone(); 美元(“.insTo”)。追加(新汇率); $(rif+“tr:n个孩子(2)td:n个孩子(1)”).text(“O”); $(rif+“tr:n个孩子(2)td:n个孩子(3)”).text(“O”

我有一个each(),里面有一个回调函数。 我希望每个()都通过回调同步。 我把我的例子贴在这里

函数insRow(rif,回调){
setTimeout(函数(){
$(rif+“tr:n个孩子(2)”;
var newtr=$(rif+“tr:nth child(2)”).clone();
美元(“.insTo”)。追加(新汇率);
$(rif+“tr:n个孩子(2)td:n个孩子(1)”).text(“O”);
$(rif+“tr:n个孩子(2)td:n个孩子(3)”).text(“O”);
$(rif+“tr:n个孩子(2)td:n个孩子(5)”).text(“O”);
if(callback){callback(true);}
},1000);
}
var go=真;
$(“.insFrom tr:not(:first child)”).each(function(){
如果(去){
go=假;
$(“.middle tr:nth child(2)td:nth child(1)”).text($(this.find(“td:nth child(1)”).text());
$(“.middle tr:nth child(2)td:nth child(3)”).text($(this.find(“td:nth child(2)”).text());
$(“.middle tr:nth child(2)td:nth child(5)”).text($(this.find(“td:nth child(3)”).text());
insRow(“.middle”,函数(回调){
如果(回调){
去=真;
}
});
}
});
表td{
边框:1px纯黑;
最小宽度:50px;
文本对齐:居中;
}

ABCDE


ABCDE O/td>XOYO

王牌 123 456 789
您可能需要等待循环(这是新的很酷的js内容[在旧浏览器中不起作用]):

或者你需要一些回调:

var els = $(".insFrom tr:not(:first-child)");
//an IIFE, used as an entry point for continuing
(function next(i){
    //if index is out of scope terminate
    if(i >= els.length) return;
    var el = els[i];

    $(".middle tr:nth-child(2) td:nth-child(1)").text($(el).find("td:nth-child(1)").text());
    $(".middle tr:nth-child(2) td:nth-child(3)").text($(el).find("td:nth-child(2)").text());
    $(".middle tr:nth-child(2) td:nth-child(5)").text($(el).find("td:nth-child(3)").text());
    insRow(".middle", function(callback){
      if(callback){                                                        
        next(i+1);//proceed with the next element
      }
    });
})(0);//start immediately at index 0

干得好!我不习惯这样写代码。。。但你的工作!我试过这个()。。。对我来说更清晰,但仍然无法使其工作。Thanks@francesco你为什么不干脆拿走我的?!?请告诉我,你能解释一下吗?
var els = $(".insFrom tr:not(:first-child)");
//an IIFE, used as an entry point for continuing
(function next(i){
    //if index is out of scope terminate
    if(i >= els.length) return;
    var el = els[i];

    $(".middle tr:nth-child(2) td:nth-child(1)").text($(el).find("td:nth-child(1)").text());
    $(".middle tr:nth-child(2) td:nth-child(3)").text($(el).find("td:nth-child(2)").text());
    $(".middle tr:nth-child(2) td:nth-child(5)").text($(el).find("td:nth-child(3)").text());
    insRow(".middle", function(callback){
      if(callback){                                                        
        next(i+1);//proceed with the next element
      }
    });
})(0);//start immediately at index 0