Отписаться от подписки в 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);