Jquery 如何从Ajax请求中获取回调函数的值

Jquery 如何从Ajax请求中获取回调函数的值,jquery,asynchronous,callback,Jquery,Asynchronous,Callback,这个问题可能与我在这里问的问题有关: 现在,我面临另一个问题。如何从回调函数中检索值 function find_bus_route(array_bustops,callback){ $.ajax({ type: 'POST', async: true, url: 'find_routenum.php', data:{ arra

这个问题可能与我在这里问的问题有关:

现在,我面临另一个问题。如何从回调函数中检索值

 function find_bus_route(array_bustops,callback){

            $.ajax({

            type: 'POST',
                async: true,
            url: 'find_routenum.php',

            data:{

                array_bustops:JSON.stringify(array_bustops)

            },
            dataType:'json', //html,xml

            success: function(my_results){

                callback(my_results);

            },

            error:function(x,e){
                if(x.status==0){
                alert('You are offline!!\n Please Check Your Network.');
                }else if(x.status==404){
                alert('Requested URL not found.');
                }
            }


        });

    }//end function

var arr_one;

    find_bus_route(arr_bus,function (data){
                                                                                 arr_one=data;
          alert(arr_one) //has correct value        

    }

alert (arr_one) //-->This returns undefined.. 
啊,一个似乎超出了范围

if(arr_one == arr_two){
   //do something.

}
实际上我想做的是: 假设没有回调且async设置为false,并且函数find_bus_route返回一个值

var arr_one=find_bus_route(arr_stop1);
var arr_two=find_bus_route(arr_stop2);

if(arr_one==arr_two){
 //do something

}
else {
//do something


 };

由于您以异步方式调用外部页面,因此不会立即得到结果(取决于服务器/网络负载)

在代码中,第二个警报(显示
undefined
)在AJAX调用之后执行(可能无法获得响应)。另一个在获取JSON响应时执行。只能在
success
回调中使用返回值

我想你应该向我们解释你到底想做什么

编辑: 我想你需要的是延迟对象,看。 使用,您可以等待两个异步调用。第一个例子就是你要问的。在when回调中,比较两个结果。

ajax中的第一个“A”表示异步。当“如果”触发时,ajax尚未完成。你需要把它转移到你的成功回调中