我无法理解如何使用Amplify.js取消订阅活动。事件不断叠加,简单放大。根据文档的说法无法使用。
我通常使用匿名回调,但认为命名回调更容易取消订阅。因此,在下面的代码中,我订阅了“registerInterest”事件,该事件在单击按钮后发布。
订阅功能的回调启动表单提交。如果此表单提交失败,并且用户再次单击提交,则会触发两个表单提交请求,因为amplifyjs中的“Subscriptions”堆栈注册了两个“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' );
从文档中,在subscribe函数中添加'return false'应该可以工作,但事实并非如此。我也尝试在订阅功能中添加以下内容。
amplify.unsubscribe('registerInterest',postRegisterData);