我的angularjs代码有问题。我做了一个登录代码,但是我需要通过电子邮件验证当前用户是否已经存在于数据库中。我想向数据库提出两个请求。 (两个$ http)。一个用数据库获取此电子邮件的用户数,以验证这是否为零,如果电子邮件的用户数为零,则在数据库中插入其他用户,但我遇到了问题。请查看我的代码:
I made a service to verify the user email in database
此代码运行,但警报调用错误。首先调用警报(" test2")然后警告(" test1"),但我先验证。
抱歉,我现在正在学习角度。这是我的问题!谢谢!
答案 0 :(得分:0)
这是正常的,对#include <stdio.h>
struct S {
S() { print(); }
S(const S &) = delete;
void print() { printf("%p\n", (void *) this); }
};
S f() { return {}; }
int main() { f().print(); }
的调用是异步的,因此在您调用.then()
的代码中,您调用API并继续执行代码,这就是它首先显示“test2”的原因
尝试将.then()
放在alert("test2")
当用户不存在时,你需要在第一个$location.path(...)
内调用第二个请求
答案 1 :(得分:0)
非常好。多克斯,但我还有问题。我需要我的函数停止运行“return false”代码。例如:
我看到我的代码正在运行第二个选项。首先是将新用户保存在数据库中,然后是进行验证。如果角度是异步的,我该如何做两个顺序请求?
我在等;)
答案 2 :(得分:0)
您需要在.then()处理程序中移动第二个服务器请求。由于它们的异步特性,当前代码几乎并行执行两个服务器请求。
你正在寻找的东西更接近于此......
User.verificar($scope.cadastro.email).then(function(usuario){
if(usuario.existe == true){
//existing code
} else {
//make function call to insert user
}
});