Это происходит потому, что console.log находится за пределами функции подписки. Подписаться является асинхронной, это означает, что ваш console.log может быть запущен до получения ответа getCreds. Чтобы это исправить, нужно поместить console.log в функцию подписки, как показано ниже:
loginUser(email: string, password: string)
{
this.data.getCreds().subscribe(data => {
this.mail = data.credentials[0].email;
this.pass = data.credentials[0].password;
console.log(this.mail,email,this.pass,password, 'here!!!');
});
if(this.mail==email&&this.pass==password)
{
this.isLoggedIn = true;
localStorage.setItem('loggedIn', 'true');
this.router.navigate(['/admin']);
}
}
второй раз, когда вы запускаете метод входа в систему, работающий, потому что var mail и pas все еще имели значение с первого запуска.