Как дождаться готовности всех компонентов приложения?
Приветствую!
Я новичок в мире JS, а в мире серверного JS и подавно.
Проблема следующая: Есть node.js/express сервер, который использует модули для взаимодействия с mongo/mysql/redis/ и прочими сервисами.
Можно ли (и как?) сделать обработчик нескольких событий, который бы запускался только после того, как ВСЕ эти события сработают?
Т.е. стартовать сервер только тогда, когда готовы все: и монга и редис и всё_что_имеет_событие_ready?
Первый вариант - модуль, который будет подписан на все необходимые события и хранил бы в себе, какие события уже сработали а какие нет. При очредном событии проверяйте - все ли события уже произошли. Если да - выполняйте инициализацию.
Второй вариант - прицепить промисы, переделать евенты на промисы, сделать Promise.all(promises).then(...)
Андрей: честно говоря не знаю, вообще вы уверены что вам нужно дождаться инициализации всех сервисов? Ведь можно же при первом коннекте запускать инициализацию и т.д? Мне кажется это - более частый случай.