Throttling autoruns


#1

I need to limit the number of executions of an autorun function with a highly reactive data source.

Is it safe to assume I can do it this way?

Meteor.autorun(_.throttle(function() {
  var reactive = Session.get('highlyReactiveStuff');
  // Do something
}, 1000));

Isn’t there a built-in way to throttle autoruns otherwise?


#2

I don’t think it will work, as I think your autorun function has nothing reactive inside.
However you can do this:


var f = _.throttle(function() {  /* Do something */ }, 1000);
Meteor.autorun(function() {
  var reactive = Session.get('highlyReactiveStuff');
  f();
});

#3

Indeed that seems to work (passing the reactive data back to the function). Thanks!

var f = _.throttle(function(reactive) {  /* Do something */ }, 1000);
Meteor.autorun(function() {
  var reactive = Session.get('highlyReactiveStuff');
  f(reactive);
});