Jquery 来自ajax成功的变量

Jquery 来自ajax成功的变量,jquery,ajax,variables,Jquery,Ajax,Variables,我有这样的代码: var array = []; $('#next1').on('click', function(){ var dataString='company= '+$(this).closest('.inside').find('select').val(); $.ajax({ //async: false, type:"POST", url:"ajax/companyInfo.php", data: d

我有这样的代码:

var array = [];
$('#next1').on('click', function(){
    var dataString='company= '+$(this).closest('.inside').find('select').val();
    $.ajax({
        //async: false,
        type:"POST",
        url:"ajax/companyInfo.php",
        data: dataString,
        success: function(response){
            array = response.split("/");
            alert(array);
        }//end success function
    });//end ajax
console.log(array);
它会提醒正确的数组,但会记录空数组,这意味着我无法在成功后使用该函数。 是的,我读过很多关于这个问题的东西,包括:使它同步可以解决问题,你看,它是在代码中注释的,但是每个人都说使用这种方法是非常糟糕的。所以我有两个问题: 1:如果案例同步,为什么会提醒正确的值。我的意思是,有人解释说,同步在执行另一个代码之前等待响应,而异步则不会,这就是为什么它不能捕获要分配给数组的变量。但如果是这样的话,它怎么能提醒他们呢?
2:如何修改代码使其工作?

因为它是异步的,所以日志行将在成功函数之前运行。填充阵列后要执行的任何操作都必须在success函数中完成。或者在从success函数中调用的另一个函数中

在没有回调的情况下,您无法访问成功调用之外的数组。您已经提到的答案中解释了所有内容,您的问题现在标记为重复的。如果你不理解这个答案中的某些具体内容,那么就针对你不理解的特定方面提出一个新问题。您可以在成功处理程序中使用结果,或者从成功处理程序调用另一个函数并将数据传递给它。这是你的两个选择。它是异步的,在你理解这意味着什么之前,你只需要相信这是你的两个选择。