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