$ .post函数的setInterval捕获错误

时间:2019-03-30 11:21:47

标签: javascript jquery post

我有这样的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 :(得分:0)

它没有捕获任何错误,并且可能也不会捕获任何成功信息,因为您的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失败功能here