Если для параметра async: установлено значение false, функция возвращает правильное значение. Однако это блокирует браузер. Я пытался добавить обратные вызовы, но они не возвращают правильное значение!
function find_route(array_bustops){
var myresults;
$.ajax({
type: 'POST',
async: true, //with async:false it works
url: 'find_routenum.php',
data:{
array_bustops:JSON.stringify(array_bustops)
},
dataType:'json', //html,xml
success: function(my_results){
myresults=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.');
}
});
return myresults;
}
С ЗВОНОКОМ:
function find_route(array_bustops,callback){
var myresults;
$.ajax({
type: 'POST',
async: true, //with async:false it works
url: 'find_routenum.php',
data:{
array_bustops:JSON.stringify(array_bustops)
},
dataType:'json', //html,xml
success: function(my_results){
callback(array_bustops,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.');
}
});
return myresults;
}
function find_route2(myresults){
return myresults;
}
А потом я вызываю функцию следующим образом:
arr_one=find_route(arr,find_route2)
но arr_one возвращает неопределенное значение.
РЕДАКТИРОВАТЬ: он все еще не работает с асинхронным: установлено в true