2015-04-30 108 views
0

我试着这样做:JavaScript函数,并显示全局变量

<script> 
    FB.getLoginStatus(function(response) { 
     if (response.status==='connected') { 
      var fb_status="on"; 
     } else { 
      var fb_status="off";  
     } 
    }); 

    alert("ok"+fb_status); 

</script> 

如果我把警报内部功能,此警报的作品,由对方,如果我外面把这个警告,没有工作

我将它与PHP中的全局变量大致相同,但在Javascript中没有太多经验。

我只需要相同的示例,以便在var中检测函数的结果,但如我举例来说,o utside功能,我尝试了很多东西,但没有得到结果

问候和thank's为帮助社区

+0

在块外声明fb_status变量,并在块内分配所需的“on”和“Off”。 – Ramkumar

+0

您正在订购比萨饼,然后在它交付之前尝试吃它! –

+0

没有工作,我尝试........ :( –

回答

0

FB.getLoginStatus是异步功能,所以当你尝试让fb_status外面,你undefined因为FB.getLoginStatus没“T回流尚未

+0

是的,这就是为什么它会失败,但问题的答案是什么? –

+0

是的,我真的需要得到这个外部函数的结果,并且可以运行其他功能,但在这种情况下没有经验....... –

+0

@Miguel Garcia:由于时间问题,你不能只使用一个全局变量,你需要重构你的代码,你能显示你的例子的其余部分吗? –

0

由于FB.getLoginStatus调用是异步的,结果后来才发生,并且只有相关事件处理程序的任何结果:

<script> 
    FB.getLoginStatus(function(response) 
    { 
     // This line gets called many millisconds later 
     console.log("When I have a status"); 
     if (response.status==='connected') 
     { 
      var fb_status="on"; 
     } 
     else 
     { 
      var fb_status="off";  
     } 
     alert("ok"+fb_status); 
    }); 
    // This line executes long before the callback returns 
    console.log("After call"); 
</script> 

退房控制台看到事件的顺序:

  • "After call"
  • "When I have a status"

你提到你想在其他地方使用的价值的意见。问题将是时间,因为你想要的结果只会在稍后发生。