I just want to clarify the document about the Session of Meteor.
In the Session.equals and Session.get doc, there is a sentence "..., invalidate the computation the next time the value of the variable is changed by Session.set.". This description is kind of hard to understand, especially for English is his/her second language like me. So here I'd like to add more information about it.
For Session.get, "..., invalidate the computation the next time the value of the variable is changed by Session.set.". This basically means that if Session.set changed the value, the reactive computation which might be a Template helper or function, anyway, the piece of reactive code which Session.get got involved is invalid, so will have to be re-run. If the Session.set got called, but didn't change the value, nothing will happen. That's it.
For Session.equals, the same. The only difference is that Session.equals represents true or false, if the comparing result didn't change, even Session.set changed the value, still nothing would happen. e.g:
Session.setDefault('key', 1); ... //in a Template helper Session.equals('key', 2);
At other place, if you change the value of 'key' from 1, to 3, to 4, anything but 2, the reactive computation including the Session.equals will not get re run.
These are the missing part of the document. Hope to help someone who got confused.