Я пытаюсь использовать либо имя пользователя, либо имя пользователя класса пользователя для входа. Однако, когда я запрашиваю письмо и пытаюсь сделатьUncaught TypeError: Не удается прочитать свойство «получить» неопределенной ошибки
object.get("username")
Я получаю сообщение об ошибке выше. Как ни странно, когда я испытываю вспомогательную функцию GetUserName в отладчике он работает отлично
function getUsername(email) {
var query = new Parse.Query(Parse.User);
query.equalTo('email', email);
query.first({
success: function(object) {
console.log(object.get("username"));
return object.get("username");
},
error: function(user, error) {
console.log("no email");
}
});
}
function signIn(usernameOrEmail, password) {
//if not email sign in with username
if (usernameOrEmail.indexOf("@") == -1) {
Parse.User.logIn(usernameOrEmail, password, {
success: function(user) {
console.log("Logged in!");
},
error: function(user, error) {
alert("Error: " + error.code + " " + error.message);
}
});
}
//query for username from email and signin
else {
var username = getUsername(usernameOrEmail);
Parse.User.logIn(username, password, {
success: function(user) {
console.log("Logged in!");
},
error: function(user, error) {
alert("Error: " + error.code + " " + error.message);
}
});
}
}
'getUsername' ничего не возвращает. Оператор 'return' находится в асинхронной функции обратного вызова. – Barmar
если я ничего не верну, как установить userername = getUsername (email)? – Aaron
Вам нужно передать функцию обратного вызова 'getUsername', и она должна вызвать ее в функции успеха. – Barmar