Skip to content

Instantly share code, notes, and snippets.

@ColinCampbell
Forked from mauritslamers/gist:517393
Created August 10, 2010 15:48
Show Gist options
  • Save ColinCampbell/517491 to your computer and use it in GitHub Desktop.
Save ColinCampbell/517491 to your computer and use it in GitHub Desktop.
addFiniteObserver: function(key, target, method, context){
// normalize. if a function is passed to target, make it the method.
if (method === undefined) {
method = target; target = this ;
}
if (!target) target = this ;
if (typeof method === "string") method = target[method] ;
if (!method) throw "You must pass a method to addObserver()" ;
var me = this; // replace by context?
var f = function() {
var val = me.get(key);
var ret = method.call(target, me, key, null);
console.log("addFiniteObserver function called: val = " + val + " and ret = " + ret);
if(ret){
me.removeObserver(key, me, f);
}
};
this.addObserver(key, target, f);
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment