打字稿函数的返回问题

时间:2019-12-25 21:47:27

标签: javascript angular function http return

看,在我的应用程序中,我具有3个功能:

  1. usuarioExiste()
usuarioExiste(usuario) {
    this.http
      .get<UsuarioDados>(environment.url + environment.token + "&Metodo=alunoCheckCPF&AlunoCPF=" + usuario.cpf)
      .subscribe(response => {
        usuario.numero_registros = response.ALUNO_ACADEMIA.Registros;

        if(usuario.numero_registros > 0) {
          this.receberUsuario(usuario)

        } else {
          console.log('Não encontrado')
        }
      })
  }

它向服务器发出请求,并检查用户拥有的寄存器数if == 0,不存在,if == 1存在,如果存在,则调用函数{{ 1}}

  1. receberUsuario()
receberUsuario()

它向服务器发出请求并接收所有用户数据。

  1. receberUsuario(usuario) { this.http .get<UsuarioDados>(environment.url + environment.token + "&Metodo=alunoCheckCPF&AlunoCPF=" + usuario.cpf) .subscribe(response => { usuario.nome = response.ALUNO_ACADEMIA.AlunoDados[0].nome_aluno; usuario.id = response.ALUNO_ACADEMIA.AlunoDados[0].id_aluno_main; usuario.id_na_academia = response.ALUNO_ACADEMIA.AlunoDados[0].id_aluno_academia; usuario.senha = response.ALUNO_ACADEMIA.AlunoDados[0].aluno_senha; usuario.nome_academia = response.ALUNO_ACADEMIA.AlunoDados[0].academia_nome; usuario.id_academia = response.ALUNO_ACADEMIA.AlunoDados[0].id_academia; }); }
senhaExiste()

用户数据到达后,它将检查是否已经注册了密码,senhaExiste(usuario) { if (usuario.senha == null) { alert("Has no Password"); } else { alert("Has Password"); } } 警报“没有密码” if no警报“有密码”。

但是问题来了,如果找不到用户,我就运行if yes是没有道理的,所以,我认为创建第四个函数senhaExiste()会更好,它将检查如果validar()返回true或false,如果返回true,即用户存在,则调用usuarioExiste(),如果返回false,即找不到用户,则不执行任何操作。

但是,当我要验证用户是否存在于senhaExiste()函数的.subscribe中时,似乎无法正常工作,我编写了以下代码:

usuarioExiste()

但是我收到错误:

  

类型'void'的表达式无法进行真实性测试

我尝试将{:{boolean}}放在validar(usuario) { if(this.usuarioExiste(usuario)) { this.senhaExiste() } else { alert('Erro') } } usuarioExiste(usuario) { this.http .get<UsuarioDados>(environment.url + environment.token + "&Metodo=alunoCheckCPF&AlunoCPF=" + usuario.cpf) .subscribe(response => { usuario.numero_registros = response.ALUNO_ACADEMIA.Registros; if(usuario.numero_registros > 0) { this.receberUsuario(usuario) return true; } else { console.log('Não encontrado') return false; } }) } 前面,例如:usuarioExiste(),但随后出现了错误:

  

声明类型为“ void”或“ any”的函数必须返回值。

那么我该如何解决此问题,或者如何更改代码以使我的逻辑起作用?

0 个答案:

没有答案