根据ajax成功变量中断for循环

时间:2017-11-13 11:14:53

标签: javascript jquery ajax variables for-loop

对于以下代码,第一次迭代时,emailCnt为50,下一次迭代需要25次。在ajax成功之外访问变量值并打破for循环执行的可能方法是什么?

var limit = 50;
var emailCnt = limit;
for (var i = 0; i < 20; i++) {
    console.log(emailCnt);///this value is 50 instead I need 25     
    if (emailCnt < limit && i != 0) {
        break;
    }
    setTimeout(function () {
        submit_post(slNo, limit, function (output) {
            slNo = output;
            emailCnt = 25;
            $('#load_data').html('Hello');
        });
    }, 1000);
}
function submit_post(slNo, limit, handleData) {
    $.ajax({
        type: 'POST',
        async: false,
        url: url,
        data: { slNo: slNo, limit: limit },
        success: function (data) { handleData(data); }
    });
}

1 个答案:

答案 0 :(得分:0)

这对我来说成功了

var limit           =   50;
var emailCnt        =   limit;
function submit_post(slNo, limit) 
{
    var result="";
    $.ajax({
        type: 'POST',
        async: false,
        url: url,
        data: {slNo:slNo, limit:limit},
        success: function(data) { result = data; }
    });
    return result;
}
for(var i=0;i<20;i++)
{
    if(emailCnt     <   limit  &&  i  !=  0)
    {
        break;
    }
    setTimeout(function () {
    var output              =   submit_post(slNo, limit); 
    slNo                    =   output;
    emailCnt                =   25;
    $('#load_data').html('Hello');
}, 1000);
}