setInterval с ошибкой перехвата функции $ .post - PullRequest
0 голосов
/ 30 марта 2019

У меня есть такая функция setInterval;

    $(document).ready(function () {
        setInterval(function () {
            try{
                loader();
            }catch (e) {
                location.reload();
            }

        }, 1000);
    });

    function loader() {
        $.post("dbprocess.php", {
            process:"loadData"
        }, function (responsedData) {
            responsedData = JSON.parse(responsedData);
            $('#kitchenWrapper').html(responsedData.list);
        })
    }

Я хочу поймать, если функция загрузчика имеет ошибку (например, 500 внутренних или других ошибок), я хочу перезагрузить страницу. Этот код не перехватывал ошибки во время выполнения.

1 Ответ

0 голосов
/ 30 марта 2019

Он не уловил никакой ошибки и, вероятно, также не отловит никакой информации об успехе, потому что ваша loader() функция не возвращает возврат вашего $.post() вызова функции.

ваша функция загрузчика должна вернуть возвращаемое значение вызова функции $ .post, как показано ниже:

function loader() {
        return $.post("dbprocess.php", {
            process:"loadData"
        }, function (responsedData) {
            responsedData = JSON.parse(responsedData);
            $('#kitchenWrapper').html(responsedData.list);
        });
    }

и в вашей функции интервала вы можете сделать что-то, как показано ниже, для обработки неудачных возвратов вашего вызова функции $.post():

$(document).ready(function () {
        setInterval(function () {
            loader().fail(function () {
                location.reload();
            });
        }, 1000);
    });

Вы можете узнать больше о функции сбоя $ .post здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...