函数返回异步函数

时间:2018-03-24 11:07:09

标签: javascript function asynchronous promise

我的网站上有一个plugin,可以获得用户的Facebook登录状态。使用我自己的函数facebookStatus()我想返回用户的Facebook ID。到目前为止,我尝试了三种方法:

1

console.log(facebookStatus()); // Should show the Facebook ID in the console

function facebookStatus() {
  facebookConnectPlugin.getLoginStatus(function(response) {    
    var result = response.authResponse.userID;
  }, function(error) {
    var result = error;
  });
  return result;
}

这会产生

  

未捕获的ReferenceError:未定义结果

我猜这是由于getLoginStatus()的异步性质。

2

function facebookStatus() {
    facebookConnectPlugin.getLoginStatus(function(response) {    
        return response.authResponse.userID;
    }, function(error) {
        return error;
    }).then(function(response) {
        result = response;
    });
    return result;
}
  

未捕获TypeError:facebookConnectPlugin.getLoginStatus(...)。然后不是函数

3

facebookStatus().then(function(response) {
    console.log(response);
});

function facebookStatus() {
    return facebookConnectPlugin.getLoginStatus(function(response) {    
        return response.authResponse.userID;
    }, function(error) {
        return error;
    });
}
  

未捕获TypeError:facebookStatus(...)。然后不是函数

PS:我正在使用jQuery,如果它有帮助。

0 个答案:

没有答案