Javascript js中参数函数的返回值
我想返回回调函数的值,如下所示。无法理解如何使其仅用于解释目的Javascript js中参数函数的返回值,javascript,facebook,Javascript,Facebook,我想返回回调函数的值,如下所示。无法理解如何使其仅用于解释目的 console.log( hasLogin() ); function hasLogin(){ FB.getLoginStatus(function(response) { if (response.session) { return true; } else { return false; } }); } 实际上,我希望hasLogin返回true is re
console.log( hasLogin() );
function hasLogin(){
FB.getLoginStatus(function(response) {
if (response.session) {
return true;
}
else {
return false;
}
});
}
实际上,我希望hasLogin返回true is response.session exists/is true
谢谢 getLoginStatus正在调用匿名函数,该函数返回的是true或false,而不是hasLogin。hasLogin实际上返回的是未定义的。由于这是异步发生的,因此需要执行以下操作:
FB.getLoginStatus(function(response) {
console.log(response.session);
});
异步调用可能很难处理。getLoginStatus正在调用匿名函数,该函数返回的是true或false,而不是hasLogin。hasLogin实际上返回的是未定义的。由于这是异步发生的,因此需要执行以下操作:
FB.getLoginStatus(function(response) {
console.log(response.session);
});
异步调用可能很难处理。您不需要这样做-因为getLoginStatus被设计为异步的,所以结果还不可用。最好的策略是保持异步:
在JavaScript中通常就是这样做的。当然,这会迫使您重新思考代码流。您没有这样做-因为getLoginStatus被设计为异步的,所以结果还不可用。最好的策略是保持异步:
在JavaScript中通常就是这样做的。当然,它迫使您重新考虑代码流。您不能真正做到这一点,因为getLoginStatus异步运行,这就是它提供回调函数的原因 您可以做的是:
function hasLogin(){
FB.getLoginStatus(function(response) {
if (response.session) {
console.log("got session");
}
else {
console.log("got no session");
}
});
}
您不能真正做到这一点,因为getLoginStatus异步运行,这就是它提供回调函数的原因 您可以做的是:
function hasLogin(){
FB.getLoginStatus(function(response) {
if (response.session) {
console.log("got session");
}
else {
console.log("got no session");
}
});
}
当然,我就是这么说的。我需要的是让hasLogin返回所述的true或false。hasLogin正在调用异步运行的方法。没有真正好的方法来做你想做的事情,这只是异步调用的本质。Facebook可能会遭到猛烈攻击,getLoginStatus可能需要几秒钟才能返回,你永远也不知道。当然,这就是我告诉你的。我需要的是让hasLogin返回所述的true或false。hasLogin正在调用异步运行的方法。没有真正好的方法来做你想做的事情,这只是异步调用的本质。Facebook可能会遭到猛烈攻击,getLoginStatus可能需要几秒钟才能返回,你永远不知道。是的,我做过类似的事情。我的异步调用处理返回的数据。谢谢。是的,我做过类似的事情。我的异步调用处理返回的数据。谢谢