您好我是节点的新手我正在尝试创建注册功能...它会检查用户名是否存在以及其他一些验证..但它不是等待从mongodb获取结果来检查用户是否存在或不.. 回调很早就被解雇..请帮助我如何按照我想要的方式进行回调
User rust_like_new(void) {
User u;
UserInit(&u);
return u;
}
int main(int argc, char *argv[]) {
User u = rust_like_new();
User *u2 = malloc(sizeof(User));
*u2 = u;
UserDoSomething(u2);
}
答案 0 :(得分:1)
这是另一个不了解回调和异步例程如何在JavaScript中工作的情况。函数 not 等待异步函数的完成。在继续之前,您可能希望阅读它。以下是一些相关问题:
要解决您的特定问题,必须将对loginValidate
,validateMobile
和callback
的异步调用链接到各自的回调函数中。以下是我将如何做到这一点(请注意,这种方法是快速失败的,一旦我们知道用户无效就不会触发更多验证步骤):
exports.registerValidate = function(data, callback) {
var isValid = true;
var userData = [];
var errors = [];
for (var key in data) {
userData.push(data[key]);
}
var nam = Object.keys(data);
this.loginValidate(userData[0], function(data) {
if (data) {
callback(false);
return;
}
util.validateMobile(userData[2], function(bool) {
callback(bool && !util.validateEmail());
});
});
}