在AJAX中如何从onreadystatechange = function()内部检索变量

Chr*_*ris 0 javascript ajax

是否可以onreadystatechange从函数外部检索函数中的变量集?
--edit--
关于函数的执行:
如果可能的话我想一次执行ajaxFunction()
然后用下一次单击弹出(),或者以某种方式等待ajax函数结束然后调用alert框


在伪代码中:

function ajaxFunction(){
    //creating AJAX 
    ...
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function (){
        if(ajaxRequest.readyState == 4){
            //success code
            ======>Here i want to set variable <=====
            var MyVariable='MyContent';
        }
    }
    //Retrieving page
    ....
}

function popup(){
    ajaxFunction();
    alert(MyVariable);
}
Run Code Online (Sandbox Code Playgroud)

som*_*ome 5

以下代码假定ajax-request是同步的:

function popup(){
    ajaxFunction();
    alert(MyVariable);
}
Run Code Online (Sandbox Code Playgroud)

但由于同步请求阻止了浏览器,因此几乎在所有情况下都应使用异步调用(如果我没记错的话,不应在同步请求上调用onreadystatechange,但不同浏览器的行为方式不同)

你能做的是:

function ajaxFunction(callback){
    //creating AJAX 
     ...
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function (){
        if(ajaxRequest.readyState == 4){
            //success code
            callback('MyContent')
        }
    }
    //Retrieving page
     ....
}

function popup() {
  ajaxFunction(function(MyVariable){alert(MyVariable););
}
Run Code Online (Sandbox Code Playgroud)