js中for循环每次循环如何暂停一秒后执行

大神们帮我看一下我写的这段代码:
//人员授权的全增功能
function alladdroleshouquanusers()
{

            var rows = partid3.getSelecteds();
            for(var i=0;i<rows.length;i++)
            {
            var sendData = nui.encode({'userid':rows[i].OPERATOR_ID,'prPartId':plPartId3});
            nui.ajax
            (
                {
                     url:"com.spinsoft.eip.portal.Part.queryalladdusers.biz.ext",
                     type:'POST',
                     data:sendData,
                     cache: false,
                     contentType:'text/json',
                     success:function(text)
                     {
                         var returnJson = nui.decode(text);
                         if(returnJson.exception == null)
                         {
                             partid3.reload();
                             partid4.reload();
                         }
                         else
                         {
                             nui.alert("添加角色授权失败", "系统提示");
                             partid1.unmask();
                         }
                     }
                }
            );
            }
      }

我是想利用选择框全选,然后点击一键全都添加,但是在这里遇到了问题,以上代码中数据可以获取,但是在执行ajax的时候出现了问题,全增的时候之增加过去了一部分,还有一部分没有增加过去,我尝试在for循环下面加了一个alert,然后弹出一个alert就点击一下,就这样的方式,数据居然可以全都添加过去,为此很纳闷,不知道是哪里出了问题,自己怀疑是不是ajax执行的太快了,数据丢失的原因,所以想让for循环慢一点执行试一下,网上搜索页搜索不到结果,哪位大神有解决的办法,谢谢了!

<script>
var index=0;
 var handler = setInterval("alladdroleshouquanusers()",1000);
 if(index<rows.length){
    index++;
        if(index>=rows.length){
            clearInterval(handler);//关闭定时
        }
    原来for里面的一堆代码
 }
 </script>

刚刚项目中写了一下。。正好用到的。。看看合不合你意。。

for循环中每执行一些代码后暂停一秒再执行一些

你这里每次循环就发送一次请求,为什么不批量组织在一起,请求一次呢?

两种方法可以解决你的问题:同步阻塞的ajax;或写一个函数递归调用请求ajax。

加一个 async:false试试