Смотри, в моем приложении у меня есть 3 функции:

  1. usuarioExiste()
 usuarioExiste(usuario) { this.http .get{amp}lt;UsuarioDados{amp}gt;(environment.url   environment.token   "{amp}amp;Metodo=alunoCheckCPF{amp}amp;AlunoCPF="   usuario.cpf) .subscribe(response ={amp}gt; { usuario.numero_registros = response.ALUNO_ACADEMIA.Registros; if(usuario.numero_registros {amp}gt; 0) { this.receberUsuario(usuario) } else { console.log('Não encontrado') } }) } 

Он делает запрос к серверу и проверяет количество регистров, которые есть у пользователя, if == 0 , он не существует, if == 1 он существует, если он существует, вызвать функцию receberUsuario()

  1. receberUsuario()
 receberUsuario(usuario) { this.http .get{amp}lt;UsuarioDados{amp}gt;(environment.url   environment.token   "{amp}amp;Metodo=alunoCheckCPF{amp}amp;AlunoCPF="   usuario.cpf) .subscribe(response ={amp}gt; { 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; }); } 

Он делает запрос к серверу и получает все данные пользователей.

  1. senhaExiste()
 senhaExiste(usuario) { if (usuario.senha == null) { alert("Has no Password"); } else { alert("Has Password"); } } 

После того, как данные пользователя поступят, он проверит, зарегистрирован ли у них уже зарегистрированный пароль, if no предупреждения «Нет пароля», if yes предупреждение «Имеет пароль».

Но тут возникает проблема: нет смысла запускать senhaExiste() если пользователь не найден, поэтому я подумал, что было бы лучше, если бы я создал четвертую функцию validar() , она проверит, возвращает ли usuarioExiste() true или false, если возвращает true, то есть пользователь существует, вызвать senhaExiste() если возвращает false, то есть пользователь не был найден, ничего не делать.

Но так как я проверяю, существует ли пользователь внутри .subscribe функции usuarioExiste() , похоже, что он не работает, я сделал этот код:

 validar(usuario) { if(this.usuarioExiste(usuario)) { this.senhaExiste() } else { alert('Erro') } } usuarioExiste(usuario) { this.http .get{amp}lt;UsuarioDados{amp}gt;(environment.url   environment.token   "{amp}amp;Metodo=alunoCheckCPF{amp}amp;AlunoCPF="   usuario.cpf) .subscribe(response ={amp}gt; { usuario.numero_registros = response.ALUNO_ACADEMIA.Registros; if(usuario.numero_registros {amp}gt; 0) { this.receberUsuario(usuario) return true; } else { console.log('Não encontrado') return false; } }) } 

Но я получаю сообщение об ошибке:

Выражение типа «void» не может быть проверено на правдивость

я пытался поставить «: boolean» перед usuarioExiste() как: usuarioExiste(): boolean {} но затем получил ошибки:

Функция с объявленным типом new либо void, ни any должна возвращать значение.

Так как я могу это исправить, или как я могу изменить код, чтобы моя логика работала?