如何在JS中用作param的匿名函数中分配外部作用域变量?

时间:2012-06-30 19:40:42

标签: javascript scope

(想不出为此编写标题的任何更简单的方法,但代码应该解释它。)

这是我的代码:

function logIn(email, password) {
   var response;
   Parse.User.logIn(email, password, {
     success: function(user) {
       response = [true, user];
     },
     error: function(user, error) {
       response = [false, "Error: " + error.code + " " + error.message];
     }
   });
   return response; // still undefined :(
}

如何为此功能正确返回response以便定义?只需将return response置于成功之内:并且错误:回调显然不会返回外部logIn()函数,所以我有点难过。

1 个答案:

答案 0 :(得分:3)

alert(response);

正在执行

response = ...

因为你的Parse.User.logIn函数没有立即运行它的回调。如果确实如此,那么你就不会有问题。

function logIn(email, password, callback) {
   Parse.User.logIn(email, password, {
     success: function(user) {
       callback([true, user]);
     },
     error: function(user, error) {
       callback([false, "Error: " + error.code + " " + error.message]);
     }
   });
}

logIn(..., ..., function(response) {

});

但是,在这一点上,功能服务器是否有任何意义,这是值得怀疑的。具有错误和成功的单独功能可能更好。