在FB.api函数上设置值后,变量为空

时间:2015-03-27 14:27:01

标签: facebook facebook-graph-api facebook-javascript-sdk

我试图获取用户区域设置并将其保留在变量上。

function myFunction() {

  var userLocale;

  FB.api(
    "/{userID}",
    function (response) {
      if (response && !response.error) {
        userLocale = response.locale;
      }
    }
  );

}

当我使用赋予我函数的值设置userLocale时,console.log(userLocale);会返回undefined

检查用户是否有权访问我的应用后,会调用

myFunction

1 个答案:

答案 0 :(得分:2)

您可能在设置userLocale变量的回调函数之前调用console.log。在Facebook回复之前,您传递给FB.api()的函数不会被调用。验证userLocale的代码应该如下所示:

function myFunction() {

  var userLocale;

  FB.api(
    "/{userID}",
    function (response) {
      if (response && !response.error) {
        userLocale = response.locale;
        // Wait until I get an FB response before printing userLocale.
        console.log(userLocale);
        // Anything that requires userLocale goes here, not outside the FB.api() call.
      }
    }
  );

}