可以在setInterval处理程序中调用clearInterval吗?

Ya.*_*man 38 javascript timer

我有一段Javascript,每n秒检查一次条件(通过AJAX调用).如果该条件为真,则停止检查.我已通过以下方式实现它:

var stopTimer;
var timerId = setInterval(function() {

    /* Make Ajax Calls and set stopTimer */

    if (stopTimer) {
        clearInterval(timerId);
    }
}, 10000);
Run Code Online (Sandbox Code Playgroud)

但是,我发现不稳定的行为:有时会工作,但在其他时候,它会一直检查.我已经检查过(尽可能多)代码的任何部分都没有错误.

因此,我怀疑在setInterval处理程序中调用clearInterval可能是罪魁祸首.是对的吗?可以在setInterval处理程序中调用clearInterval吗?

感谢您的关注

Spl*_*iFF 19

它是安全的.问题可能与stopTimer未按预期设置有关.