Skip to content

Instantly share code, notes, and snippets.

@yoko
Created January 22, 2009 12:44
Show Gist options
  • Save yoko/50525 to your computer and use it in GitHub Desktop.
Save yoko/50525 to your computer and use it in GitHub Desktop.
override Deferred.loop(fork from JSDeferred Sample's aloop;)). Timer is gist:50500.
Deferred.loop = function(n, f) {
var i = 0;
var end = new Object;
var ret = null;
return Deferred.next(function() {
var t = new Timer;
t.start();
try {
do {
ret = f(i);
if (++i >= n) throw end;
}
while (t.count() < 50);
return Deferred.call(arguments.callee);
}
catch(e) {
if (e == end) return ret;
else throw e;
}
});
};
Deferred.register('loop', Deferred.loop);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment