Отписка от или подписка на событие

164
19 апреля 2022, 05:00

Изучаю сайт Читай-город. Файл окна входа\регистрации имеет имя Читай-город - интернет-магазин книг_files\auth.js(1).Без названия и следующее содержание (отрывок со 160-й по 218-ю строчку)

//подпишемся на событие при успешно отвалидированном инпуте
    eventEmitter.subscribe(gValidator.events.input.valid, function (payload){
        if(payload.input){
            payload.input.parentElement.classList.remove('error');
        }
        var formData = authFormsData[payload.form.id];
        if(formData){
            gValidator.validate(formData);
        }
    });
    //подпишемся на событие при не прошедшем валидацию инпуте
    eventEmitter.subscribe(gValidator.events.input.fail, function (payload){
        if(payload.input){
            payload.input.parentElement.classList.add('error');
        }
        var formData = authFormsData[payload.form.id];
        if(formData){
            gValidator.validate(formData);
        }
    });
    //подпишемся на событие при успешно отвалидированной формы
    eventEmitter.subscribe(gValidator.events.form.valid, function (payload){
        if(payload.submitBtn){
            payload.submitBtn.classList.remove('disabled');
        }
    });
    //подпишемся на событие при не прошедшей валидацию формы
    eventEmitter.subscribe(gValidator.events.form.fail, function (payload){
        if(payload.submitBtn){
            payload.submitBtn.classList.add('disabled');
        }
    });
    //подпишемся на событие успешного сброса пароля
    eventEmitter.subscribe(auth.events.resetPassSuccess, function (){
        //Popup.hideAll();
        var resetPassMessage = Popup.getInstance('resetPassMessage', '.js__popup_reset_pass_message', getResetPassMessage());
        resetPassMessage.show();
    });
    eventEmitter.subscribe(auth.events.registrationSuccess, function (){
        if(window.version === 'd'){
            window.location.reload();
        } else if (window.version === 'm') {
            //Popup.hideAll();
            var popupGreeting = Popup.getInstance('greeting', '.js__popup_greeting');
            //покажем попап приветствия
            popupGreeting.show();
            eventEmitter.subscribe(popupGreeting.events.closePopup, function () {
                window.location.reload();
            });
        }
    });

Из Подписка на событие следует, что eventEmitter.subscribe производит отписку обработчика от события, но такое ощущение, что наоборот - производится подписка. Проясните каким образом происходит работа оператора eventEmmitter.subscribe в приведенном файле и для чего нужна отписка, если такая производится.

READ ALSO
Как корректно вставить условие?

Как корректно вставить условие?

Получаю ответ от сервера и на его основе выводу на страницу результаты поискав значениях может приходить null

173
Как сделать фильтр по диапазону? [закрыт]

Как сделать фильтр по диапазону? [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

129