【发布时间】:2015-11-25 09:23:04
【问题描述】:
我有一个注册对话框,当用户输入用户名和密码时,我需要检查数据库用户是否存在 或不。但是,当我对相同的验证进行验证时,我的调用不会停止,直到我从服务器获得结果。
经过一段时间的搜索,我了解了callbacks。所以我在this.isUser 方法中添加了一个回调。
它是成功的。但是现在doRegistration 方法与isUser 方法不同步了。
如何让我的所有调用同步?
this.doRegistration = function(uname, pwd, confirmPwd) {
if(this.isUser(uname)) {
return "USER_EXISTS";
} else {
saveUser(uname, pwd);
return "SUCCESS";
}
};
this.isUser = function(username) {
var users = new Array();
getAllUsers('param', function(response) {
users = response;
console.log(users.length);
for(i = 0; i < users.length; i++) {
if(users[i].username === username) {
return true;
}
}
return false;
});
};
function getAllUsers(param, callback) {
loginFactory.AllUsers.query(function(response) {
if(response != undefined && response.length > 0) {
callback(response);
}
});
}
【问题讨论】:
-
同样,您也必须在 isUser 方法中使用回调作为第二个参数
-
@PitchaiPazhani 这是唯一的方法吗?
-
这是处理异步调用的完美方式。
标签: angularjs node.js mongodb callback