Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数返回的值返回错误的值_Javascript - Fatal编程技术网

Javascript 函数返回的值返回错误的值

Javascript 函数返回的值返回错误的值,javascript,Javascript,我将数组传递到函数中,如果存在“facebookValue”,则获取用户id和访问令牌。 该功能可以正常工作,因为id可以输出到控制台。。。但我的问题似乎是返回值没有捕获变量,我没有定义 这是我的功能 function facebook_oAuth(arr){ var checkArray = $.inArray('facebookValue', arr), uid, accessToken; if (checkArray == -1) {

我将数组传递到函数中,如果存在“facebookValue”,则获取用户id和访问令牌。

该功能可以正常工作,因为id可以输出到控制台。。。但我的问题似乎是返回值没有捕获变量,我没有定义

这是我的功能

function facebook_oAuth(arr){

    var checkArray = $.inArray('facebookValue', arr), 
        uid, 
        accessToken;

    if (checkArray == -1) {}
    else{
        FB.getLoginStatus(function(response) {
            if (response.status === 'connected') {
                    uid = response.authResponse.userID, 
                    access_token = response.authResponse.accessToken;
                        console.log(uid + " ? " + accessToken); // ok 
            }
            return [uid, access_token];// doesnt return the values from above
        });
    }
};
我正在获取这样的值,但是值(uid,accessToken)显示为
undefined

var myReturn = facebook_oAuth(myArray),
    uid = myReturn[0],
    accessToken = myReturn[1],
    credentialsArray = [uid,accessToken];

这段代码是异步的,如果您真的需要以
facebook\u oAuth
返回值的形式获得响应,您必须等待异步调用完成,但我不建议这样做。 否则,您可以使用以下代码:

function facebook_oAuth(arr,callback) {

    var checkArray = $.inArray('facebookValue', arr),
            uid,
            accessToken;

    if (checkArray == -1) {
    }
    else {
        FB.getLoginStatus(function(response) {
            if (response.status === 'connected') {
                uid = response.authResponse.userID,
                        access_token = response.authResponse.accessToken;
                console.log(uid + " ? " + accessToken); // ok 
            }
            callback([uid, access_token]);
        });
    }
}
;


facebook_oAuth(myArray,function(myReturn)
{
    //This code is executed AFTER you retrieve FB login status
    var uid = myReturn[0],
    accessToken = myReturn[1],
    credentialsArray = [uid,accessToken];
});

uid=response.authResponse.userID,
应改为
uid=response.authResponse.userID(分号代替逗号)了解异步的含义。