Howto:Troubleshooting Nasal Callbacks: Difference between revisions

Jump to navigation Jump to search
Line 56: Line 56:
};
};


var TrackableAPI = func(api) {
var TrackableAPI = {
  return func() {};
new: func(api) {},
}
  del: func() {},


var setlistener = TrackableAPI(api:settimer);
getCallback: func() {return me.invoke},
var settimer = TrackableAPI(api:setlistener);
invoke: func () {},
};
 
 
var setlistener = TrackableAPI.new(api: setlistener).getCallback();
var settimer = TrackableAPI.new(api: settimer).getCallback();
 
var test = func() {


## improper use of APIs:
## improper use of APIs:
var foo = func;
var foo = func;
for (var i=0;i<=5;i++) {
for (var i=0;i<=5;i++) {
  # 5 listeners registered for the same property/callback:
  # 5 listeners registered for the same property/callback:
Line 70: Line 78:
  # invoke foo again after 5 seconds
  # invoke foo again after 5 seconds
  settimer(foo, 5);
  settimer(foo, 5);
}
} # for loop


}; # of test




Navigation menu