Отписаться от подписки в Amplify.js - предотвратить накопление подписанных событий

Я не могу понять, как отписаться от событий с помощью Amplify.js. События продолжают накапливаться, и простое ampify.unsubscribe согласно документации не работает.

Я обычно использую анонимные обратные вызовы, но думал, что именованный обратный вызов будет проще отписаться. Итак, в приведенном ниже коде я подписываюсь на событие "registerInterest", которое публикуется после нажатия кнопки.

Обратный вызов для функции подписки инициирует отправку формы. Если при отправке этой формы происходит сбой, и пользователь снова нажимает кнопку "Отправить", то запускаются два запроса на отправку формы, поскольку стек "Подписки" в ampifyjs зарегистрировал две подписки для "registerInterest". Этот стек только увеличивается при каждом нажатии кнопки подтверждения.

Я хочу отписаться от события 'registerInterest' и не хочу дублировать события.

amplify.subscribe('registerInterest',function postRegisterData() {
    jcl.dataManager({
        type: 'POST',
        url: jcl.registerUrl,
        data: register,
        dataType: 'json',
        successEventName: 'registerSuccess',
        contentType: 'application/json',
        errorEventName: 'registerError',
        beforeSend: function (req) {
            req.setRequestHeader( 'Token', jcl.authToken );
            req.setRequestHeader( 'SubscriberCode', jcl.subscriberCode );
        }
    });
    return false;
});

amplify.publish( 'registerInterest' );

Из документов добавление 'false false' в функцию подписки должно работать, но это не сработало. Я также попытался добавить ниже в функцию подписки.

amplify.unsubscribe('registerInterest',postRegisterData);

0 ответов

Другие вопросы по тегам