angularjs两个请求流程

时间:2016-06-28 19:18:21

标签: angularjs flow

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

I made a service to verify the user email in database

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

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

3 个答案:

答案 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
   }
});