angularjs两个请求流

fxnxkyjh  于 2023-08-02  发布在  Angular
关注(0)|答案(3)|浏览(112)

我的AngularJS代码有问题。我做了一个代码登录,但我需要验证当前用户是否已经存在于数据库通过电子邮件。我想向数据库提出两个请求。(两个$http)。一个获取数据库中的此电子邮件的用户数量,以验证这是否与零不同,其他插入数据库中,如果与电子邮件的用户数量为零,但我遇到了一个问题。请看我的代码:
I made a service to verify the user email in database
此代码运行,但警报的调用是错误的。首先调用alert(“test 2”),然后调用alert(“test1”),但我首先验证。
对不起,我刚刚在学Angular 。这是我的问题!谢谢你,谢谢

flseospp

flseospp1#

您需要将第二个服务器请求移动到.then()处理程序中。当前的代码只是几乎并行地执行两个服务器请求,因为它们的异步特性。
你要找的是更接近这个。。

User.verificar($scope.cadastro.email).then(function(usuario){
   if(usuario.existe == true){
      //existing code
   } else {
     //make function call to insert user
   }
});

字符串

bjp0bcyl

bjp0bcyl2#

很好。谢谢,但我还是有问题。我需要我的函数停止运行在“返回假”代码。举例来说:

  • 第一:验证是否存在具有所选电子邮件的用户。
  • 第二步:在数据库中添加用户

我看到我的代码在第二个选项中运行。首先,它将新用户保存在数据库中,其次是进行验证。如果Angular 是异步的,我该怎么做来提出两个顺序的请求?
我在等待;)

bf1o4zei

bf1o4zei3#

这很正常,对.then()的调用是异步的,所以在代码中,当调用.then()时,您调用了API并继续执行代码,这就是为什么它首先显示“test2”。
尝试将alert("test2")放在$location.path(...)之前
当用户不存在时,您需要将对第二个请求的调用放在第一个.then()

相关问题