0

(これより簡単なタイトルの書き方は考えられませんでしたが、コードで説明する必要があります)。

これが私のコードです:

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この関数が定義されるように正しく返すにはどうすればよいですか? success: と error: コールバックの中に入れるだけreturn responseでは、明らかに外側の logIn() 関数が返されないので、ちょっと困惑しています。

4

1 に答える 1

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) {

});

ただし、この時点で、関数が何らかの目的を果たすかどうかは疑問になります。エラーと成功のために別々の関数を用意する方がおそらく良いでしょう。

于 2012-06-30T19:42:21.437 に答える