angularjs 两个请求流程

angularjs two request flow

我的 angularjs 代码有问题。我编写了一个登录代码,但我需要通过电子邮件验证当前用户是否已存在于数据库中。我想向数据库发出两个请求。 (两个 $http)。一个是获取数据库中使用此电子邮件的用户数量,以验证这是否不同于零,另一个是如果使用该电子邮件的用户数量为零,则将其插入数据库,但我遇到了问题。请看我的代码:

I made a service to verify the user email in database

此代码运行,但警报调用错误。先调用 alert("test2"),然后调用 alert("test1"),但我先验证。

抱歉,我正在学习angular。这是我的问题!谢谢!

这是正常的,对 .then() 的调用是异步的,所以在您调用 .then() 的代码中,您调用了 API 并继续执行您的代码,这就是为什么它首先显示 "test2"。

尽量把alert("test2")放在$location.path(...)

之前

当用户不存在时,您需要将对第二个请求的调用放在第一个 .then()

很好。 Thaks,但我还有问题。我需要我的函数在 "return false" 代码中停止到 运行。例如:

  • 首先:验证是否存在使用所选电子邮件的用户。
  • 其二:在数据库中添加用户

我看到我的代码是运行宁拳第二个选项。首先是将新用户保存在数据库中,其次是进行验证。如果 angular 是异步的,我该怎么做才能发出两个顺序请求?

我在等待 ;)

您需要将第二个服务器请求移到 .then() 处理程序中。由于它们的异步性质,当前代码只是几乎并行地执行两个服务器请求。

您正在寻找的是更接近于此的东西...

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