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

Variable is null after setting value on FB.api function

我正在尝试获取用户区域设置并将其保存在一个变量中。

function myFunction() {

  var userLocale;

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

}

当我将 userLocale 设置为函数值时,console.log(userLocale); returns undefined.

myFunction 在检查用户是否有权访问我的应用程序后调用。

您可能在设置 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.
      }
    }
  );

}