В каком месте JS примитивный?
Сейчас у него одна из сложнейших экосистем с очень долгим временем до джуна.
Потому что трейни поймет джуна, но может не понять мидла
код с 10 последовательными именованными колбеками
Переписал как два асинк метода
Библиотеку async в свое время не от хорошей жизни использовали.
неплохо бы каждую функцию пояснять с помощью jsdoc, понятно что у нас будет с коллбеками.
В коллбек передаем маленькую лямбду, которая забирает все что нужно из замыкания и передает на вход именованной.
Линейное полотно из промисов воспринимается проще.
HttpContext
, которая ничего не делает, кроме проксирования вызовов к этому классу и потому в тестировании не нуждается. При этом любые такие вызовы (даже статические) делаются от экземпляра класса. Это позволит легко заменять его на Mock
. Он будет зависимостью AuthUserService
.AuthUserService
не подходит потому, что он содержит логику. Кстати, странно, что сервис аутентификации не содержит самой аутентификации) Я бы назвал это LoginService
Отлаживать. Задача - определить, на каком шаге программа падает. Как умеете. Если умеете пользоваться дебаггером - прогуляться с ним по алгоритму. Или по-колхозному - отладочной печатью, вставляя лог-записи перед и после каждой подозрительной операции.
А когда появятся конкретные вопросы - приходите снова.