Defina sua própria recursão em JavaScript com correspondência de padrões e programação funcional

padrão é uma maneira de fazer correspondência de padrões em javascript que o ajuda com iterações assíncronas

https://github.com/dscape/p

map(_, [], ac, cb, 
function map_done(f, l, ac, cb) { return cb(ac); });

map
(f, l, ac, cb,
function map_catch_all(f, l, ac, cb) {
ac
.push(f(l.shift())); // head
map
(f, l, ac, cb); // l is now tail
});

Se você entende isso, você vai gostar do padrão!