在我遇到的这个很小的问题上,我花了 1.5 个小时来解决这个问题。情况:文件 A -> 请求文件 B,如果文件 B 返回 true,则用户已注册,不需要添加到我们的数据库中。如果为 false,则用户已登录 Facebook,但之前从未登录 -> 添加到数据库。
我的问题:FB.api() 由于异步调用而阻止我的函数返回 true。
function registered(){
                FB.api('/me', function(response) {
                    $.ajax({
                    async: true,
                    url: "facebook-sdk/src/check.php",
                    type: "POST",
                    data: {id: response.id},
                    success: function(data) {
                        if(data=='true'){
                            return true;
                        }else{
                            return false;
                        }
                    }
                    });
                });                    
}
我对函数的调用:
 if(registered())
    alert('true');
 else
    register();