等到Ajax函数完成

时间:2015-06-13 00:46:53

标签: javascript jquery ajax function wait

我已经在网站上搜索过如何等待ajax功能完成后我找到了这个解决方案:

function next() {
    $.when(checksign()).done(function () {
        if (uf == 1) {
            $("#usrdiv").css("display", "none");
            $("#pswdiv").css("display", "inline");
        }
    });
}

function checksign() {
    $.ajax({
        url: "checkuser.php",
        data: {
            user: u
        },
        method: "POST"
    }).done(...);
}

但它仍然无效,它不会等待ajax完成但是直接执行done()中的函数

1 个答案:

答案 0 :(得分:3)

这是因为checksign没有返回您需要在done函数上链接的承诺。

您不需要$.when包装器来承担单一承诺

function next() {
    checksign().done(function(data) {
        if (uf == 1) {
            $("#usrdiv").css("display", "none");
            $("#pswdiv").css("display", "inline");
        }
    });
}

function checksign() {
    return $.ajax({
        url: "checkuser.php",
        data: {
            user: u
        },
        method: "POST"
    }).done(...);
}