在没有异步的情况下等待$ .ajax回复的最佳方式:false

时间:2016-08-24 15:26:21

标签: javascript jquery ajax

我想知道如何处理我遇到的问题。我有一个表单,提交检查数据库中是否已存在条目(禁止双重名称)。通话本身运作正常。 这是使用$ .ajax的函数:

function checkActionName(action_name) {
    $.ajax({
        type: "POST",
        url: "ajax/action_checks.php",
        data: { 
            action_task: "checkActionName", 
            action_name: action_name
        },
        dataType: "text",
        timeout: 6000,
        success: function (response) {
            if (response == 0){
                return 0;
            } 
            else if (response == 1) {
                return 1;
            }
            else {
                return 2;
            }
        },
        error: function(){
            return 2;
        }
    });
}

稍后在我的代码中,我将此函数称为:

$('#button').click(function(){
   var action_name = "test";
   var check = checkActionName(action_name);
   alert(check);
});

问题是由于AJAX调用是异步运行的,因此检查将是未定义的。由于async:false已弃用,处理此情况的最佳/最符合方式(截至2016年8月)是什么,以便alert(check)将为checkActionName提供返回值?

是$ .when?我有点挣扎,这样的问题的大多数答案建议async:false,我不想使用它。

0 个答案:

没有答案