来自两个函数的Ajax回调

时间:2016-01-20 12:37:13

标签: javascript jquery ajax

您好我遇到了ajax和两个回调代码的问题

loadTasks(function(tasks) {
    taskhtml = whatStatus(tasks);
    loadSupportList(function(tasks) {
        supporthtml = support(tasks);
        $("#devtask-table").html(
                titleDraw() + "<tbody>" + supporthtml + taskhtml
                        + "</tbody>");
        hideCurtain();
    });
});

当loadSupportList或loadTasks有记录时,它可以正常工作。但当其中一个没有得到Error时,status = parsererror,抛出错误:SyntaxError:意外的输入结束。它跳出了功能,让我一无所有。我的ajax函数看起来就是这样:

function loadSupportList(callback) {
    $.ajax({
        type : "POST",
        url : url,
        data : {
            userId : userId,
            sessionId : sessionId
        },
        success : function(data) {
            callback(data['tasks']);
        },
        error : function(jqXHR, textStatus, errorThrown) {
            console.log("Error, status = " + textStatus + ", " + "error thrown: "
                    + errorThrown);
        }
    });
}

而且我不知道要改变什么,忽略(?)或者做一些json(&#39;成功&#39;)?有办法吗?谢谢你的时间。

我做了些傻事,但它的工作却不傻

    loadTasks(function(tasks) {
    taskhtml = whatStatus(tasks);
    $("#devtask-table").html(
            titleDraw() + "<tbody>" + supporthtml + taskhtml
                    + "</tbody>");
    loadSupportList(function(tasks) {
        supporthtml = support(tasks);
        $("#devtask-table").html(
                titleDraw() + "<tbody>" + supporthtml + taskhtml
                        + "</tbody>");
        hideCurtain();
    });
});

1 个答案:

答案 0 :(得分:1)

假设任务返回一个数组...像这样更新你的loadSupportList函数..

    success : function(data) {
        var ret = [];
        if(
            'object' == typeof data && 
            'undefined' != typeof data.tasks
        ) ret = data.tasks;
        callback(ret);
    }