我有以下jQuery:

    $.ajax('/contacts_imported', {
        dataType : 'json',
        data : {
            email : cfg.email
        },
        success : function(data) {
            if (data[0].processed) {
                alert('Processed is TRUE!');
            } else {
                alert('Not yet Processed');
            }

        }
    });


我想做的是,让此ajax请求每秒运行一次,直到处理完毕等于True。一旦为True,请运行一个单独的函数并终止计时器/循环。

关于主持人的建议,以便以一种优雅的方式最好地解决这个问题?

谢谢

最佳答案

不要使用间隔,因为您的AJAX请求可能不时超过1秒。因此,将ajax包装在一个函数中,并像这样调用它:

(function makeRequest() {
    $.ajax('/contacts_imported', {
        dataType : 'json',
        data : {
            email : cfg.email
        },
        success : function(data) {
            if (data[0].processed) {
                alert('Processed is TRUE!');
            } else {
                setTimeout(makeRequest, 800);
            }
        }
    });
}());

关于javascript - 如何使用计时器设置循环以发出Ajax请求,直到达到响应为止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18676199/

10-12 12:34
查看更多