在我的函数中,变量变得不确定

Vic*_*tor 0 javascript variables jquery

我有这个jQuery函数:

var searchResultsCounter = 0;
function searchPerson(filterText){
    //code
    $.ajax({
        type: "GET",
        dataType:"json",
        url: "res/main.php",
        data: { command : "loadPeople",
                filter: filterText },
        success: function( people ){
            for(var i = 0; i< people.length; i++){
                //code  
            }   
            searchResultsCounter = people.length;
            console.log(searchResultsCounter);  
        }
    }); 
console.log(searchResultsCounter);
return searchResultsCounter;
}
Run Code Online (Sandbox Code Playgroud)

在第一个控制台日志中,我searchResultsCoutner有一个很好的值,在第二个日志中,它变为0.为什么会发生这种情况?

Kar*_*ath 5

ajax请求是异步执行的,因此success稍后将执行尝试更改变量的回调函数.

您的函数只返回0.您必须重写您的代码,它以异步方式工作.一种方法是将回调函数searchPerson作为参数传递.