setInterval中的clearInterval,无法使用jquery和.post()来中断循环

Pio*_*trC 1 ajax jquery post clearinterval

我试图在setInterval函数中调用clearInterval,它正在做一些ajax获取,没有任何运气.

var nre = setInterval('checkit()',5000);
$(function() {
    checkit = function(){
        $.post("check.php", { login: "<?php echo $_SESSION['login'];?>" }, function( data ) {
            if (data == 1) {
                $('#debug').html(data);
                window.clearInterval(nre);
            }

        });
    }
});
Run Code Online (Sandbox Code Playgroud)

关键是,循环不会中断,尽管收到正数据.

我已经读过setInterval函数的异步动作可能是这里的问题.有没有更好的方法来解决它?

Aln*_*tak 6

将所有内容移动到同一范围内,不要使用以下字符串形式setInterval:

$(function() {
    var nre = setInterval(checkit, 5000);
    function checkit() {
        $.post("check.php", { login: "..." }, function( data ) {
            if (data === 1) {
                $('#debug').html(data);
                clearInterval(nre);
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)