This question already has answers here:
Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference
                                
                                    (6个答案)
                                
                        
                3年前关闭。
            
        

我有如下所示的代码。

var globalVar = ''
$.get("some.php", function(data, status)
{
    alert(data)
    globalVar = data
});
alert(globalVar)


当第一个警报显示数据值时,第二个警报则没有。似乎globalVar没有在get函数中正确分配。在这里使用全局变量的正确方法是什么?

最佳答案

可能发生的情况是,您的get()函数在调用最后一个alert()之前没有完成。为了确保这些顺序发生,一旦收到文件,您可以将最后一个alert()放在回调中。

因此,请尝试以下操作:

 var globalVar = ''
 $.get("some.php", function(data, status)
 {
   alert(data)
   globalVar = data
 }).done(function() {
   alert(globalVar)
 });

10-08 18:52