Есть система авторизации. Вот её основная часть:
private authUser(): void {
if(!this.login.trim().length || !this.password.trim().length) {
alert('Заполните поля');
return;
};
for(var prop in this.users) {
if (!this.users.hasOwnProperty(prop)) continue;
if(this.users[prop].login == this.login.trim() && this.users[prop].password == this.password.trim()) {
this.globalVarsService.authUser = this.users[prop];
this.router.navigate(['/main']);
return;
}
}
alert('Ошибка авторизации. Нет такого пользователя.');
};
Здесь много кода, но главное в том, что если срабатывает условие if в цикле for, то происходит редирект на страницу приложения. А если цикл for не находит ни одного совпадения, то выводится сообщение.
Мне непонятно почему эта конструкция работает только если после команды редиректа стоит команда return. Без неё даже при успешной авторизации сначала выводится сообщение и только после этого происходит редирект
return завершает функцию до того, как будет выведено сообщение об ошибке и выступает в качестве else.
Аналогичный код:
function fn(val){
if(val===3){
alert("gg");
return;
}
alert("not gg");
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
всем привет! ситуация следующая - мне нужно каждый час запускать exe-файл или скрипт mainjs в виндовс 7,8,10
Используя phantomjs получаю страничкуКак сделать клик по элементу
Есть функция, которая переводит длину песни в минуты и секунды(изначально дли в секундах)