Асинхронность в js это и благо и зло.
Допустим, я делаю валидатор который принимает данные и правила валидации, а возвращает или список ошибок валидации, или null (в случае успеха). Что-то вроде того:
validator(
data,
{
'email': ['email', 'required'],
'password': [{string: {min: 8, max: 50}}, 'required'],
'phone': [{number: {length: 11}}]
}
)
И все бы хорошо. Но как только понадобится провалидировать email на реальное существованине, то придется делать запрос, а это уже асинхронная операция, и просто вернуть null не получится. Нужно возвращать или промис или колбэк, а это переписывание кучи кода.
Собственно вопрос, как быть в такой ситуации? Как планировать архитектуру, чтобы не было больно? Всегда возвращать промис, чтобы было на будущее?