-
-
Notifications
You must be signed in to change notification settings - Fork 460
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unsubscribe inside publish triggers an error #26
Comments
Hey, thank you for your error report. I've created a new release that fixes this issue: https://github.com/mroderick/PubSubJS/releases/tag/v1.3.9 |
@mroderick Though I would like to dispute this fix: var mySubscriber = function(msg, data) {
// Unsubscribe - I only want to be fired once
PubSub.unsubscribe(mySubscriber);
console.log('mySubscriber');
};
var mySubscriber2 = function(msg, data) {
console.log('mySubscriber2');
};
var mySubscriber3 = function(msg, data) {
console.log('mySubscriber3 - I never get fired off, sad face.');
};
PubSub.subscribe( 'ONE SHOT', mySubscriber);
PubSub.subscribe( 'ONE SHOT', mySubscriber2);
PubSub.subscribe( 'ONE SHOT', mySubscriber3);
PubSub.publish( 'ONE SHOT', 'hello world!' ); A suggestion for a fix would be to add a 'deleteRequested' flag that gets asserted if unsubscribe is called during delivery. If not currently delivering, the subscriber is immediately deleted. When iterating through the subscriber list, only call callSubscriber if the deleted flag is not asserted for the subscriber. Then, when you are finished iterating through the list - call a cleanup function that will delete all subscribers that have the deleted flag asserted. Thoughts? |
@Mathews2115 have you run into this issue recently? The internal code has changed a fair bit since this issue was closed and the above example works as expected on the latest version. If you can reproduce it, it's worth updating the example and opening a new issue for this. |
@aron You're completely right. I'm dumb. I thought I had a later version and didn't verify before commenting, therefore committing every sin I complain about. Thank you for verifying this. |
Hi
Firstly thanks for this great piece of asynchronous code!
Sometimes there is a need to unsubscribe from a message in a callback. At the moment (in some conditions) it triggers an error. Code example:
BR
The text was updated successfully, but these errors were encountered: