无法使用clearTimeout函数停止执行setTimeout

时间:2018-05-05 12:43:56

标签: javascript ajax loops settimeout cleartimeout

我正在使用Ajax请求继续在数据库中观看。 如果某些东西从DB返回,则执行必须停止。 如果某些东西从DB返回,那么我使用clearTimeout来停止执行setTimeout循环,但它不起作用。
这是代码:

var timeRunner;
(function worker() {
    $.ajax({
        type: "GET",
        url: 'checkInDb.php',
        data: {
            tName: tName
        },
        success: function(data) {
            var obj = JSON.parse(data);
            mStudent = obj.student;
            mTeacher = obj.teacher;
            mTime = obj.time;
            console.log(mStudent, mTeacher, mTime);

            if (mStudent != '') {

                clearTimeout(timeRunner);

            }
        },
        complete: function() {
            // Schedule the next request when the current one's complete
            timeRunner = setTimeout(worker, 2000);
        }
    });
})();

如果mStudent中出现了某些内容,那么我想停止执行但不起作用。

0 个答案:

没有答案