if (!this.state.username.match(/^[a-zA-Z0-9._-]+@(?!gmail.com)(?!yahoo.com)(?!outlook.com)(?!aol.com)(?!live.com)(?!hotmail.com)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)) {
alert("Only Business Emails Are Allowed");
}
if (!this.state.phonenumber.match(/^[0-9]{10}$/)) {
alert("10 digit mobile number or 10 digit Area code followed by landline number only allowed");
} else {
let data = Object.assign({
profilePhoto: (this.state.files && this.state.files.length == "0") ? "" : this.state.files[0].base64,
}, this.state);
UserAction._createUser(data, (data) => {
console.info(data);
(data.response == "SUCCESS") ? this.setState({ gotSuccess:true, openrejectDialog: true}) : alert(data.message)
});
}
Я проверяю условие на основе совпадения имени пользователя и номера телефона. Если имя пользователя или номер телефона не совпадают, я получаю предупреждение. и при нажатии на "ОК" из предупреждения он перейдет в другое Оператор I want else должен вызываться после успешного выполнения условий "if".



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


в основном вы делаете это неправильно, вы должны использовать if / else при каждой проверке, и последний случай будет вашим успешным вызовом.
в зависимости от вашего кода, если ваше имя пользователя неправильное, а номер правильный, вы должны вызвать функцию createUser, и это не желаемый поток.
ниже у вас есть рабочий код:
если имя пользователя неправильное, отобразить ошибку.
если имя пользователя правильное, проверьте правильность номера, если нет, отобразите ошибку.
вариант по умолчанию, если все проверки были пройдены.
if (!this.state.username.match(/^[a-zA-Z0-9._-]+@(?!gmail.com)(?!yahoo.com)(?!outlook.com)(?!aol.com)(?!live.com)(?!hotmail.com)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)) {
alert("Only Business Emails Are Allowed");
} else if (!this.state.phonenumber.match(/^[0-9]{10}$/)) {
alert("10 digit mobile number or 10 digit Area code followed by landline number only allowed");
} else {
let data = Object.assign({
profilePhoto: this.state.files && this.state.files.length == "0" ? "" : this.state.files[0].base64,
}, this.state);
UserAction._createUser(data, (data) => {
console.info(data);
data.response == "SUCCESS" ? this.setState({
gotSuccess: true,
openrejectDialog: true
}) : alert(data.message)
});
}Вы делаете код else условным только для второго оператора if.
Вкратце, код else не зависит от первого if.
Вы можете попробовать это, чтобы запустить else, только если оба if имеют ложный:
if ( <checks if the email is valid>){
alert("Only Business Emails Are Allowed");
} else if ( <checks the phone number>){
alert("10 digit mobile number or 10 digit Area code followed by landline number only allowed");
} else {
/* the else code here */
}
Может быть второй
ifдолжен бытьelse if.........