Невозможно остановить выполнение setTimeout с функцией clearTimeout - PullRequest
0 голосов
/ 05 мая 2018

Я использую Ajax-запрос для продолжения просмотра в базе данных. Если что-то возвращается из БД, то выполнение должно быть остановлено. Если что-то возвращается из БД, тогда я использую 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, тогда я хочу остановить выполнение, но не работает.

...