I Wanted to keep the items in serially, as im trying to break the stack. Your asyncForEach is at the end of the day synchronous loop just like any other forloop. On Wednesday, April 11, 2012 3:33:18 PM UTC-4, Tim Caswell wrote: > > That depends on what you want it to do. This seems to execute each item > serially. You can do them all parallel and abort on the first error like > this: > > function asyncForEach(array, worker, callback) { > var len = array.length; > var results = new Array(l); > if (!len) return callback(null, results); > var left = len; > for (var i = 0; i < len; i++) { > start(i); > } > function start(i) { > worker(array[i], i, array, function (err, result) { > if (err) return callback(err); > results[i] = result; > if (!--left) callback(null, results); > }); > } > } > > > On Wed, Apr 11, 2012 at 2:07 PM, Tim Price <price.ti...@gmail.com> wrote: > >> How would one better write this function? >> >> Array.prototype.forLoop = function(worker, callBack) { >> var self = this; >> var returnData = []; >> var loop = function(i) { >> if(i === self.length) { >> return callBack(returnData); >> } >> process.nextTick(function() { >> >> worker.call(self, self[i], function(d) { >> >> returnData.push(d); >> loop(++i); >> }); >> }); >> } >> loop(0); >> }; >> >> >> and you would use it like so >> >> >> ['sdf', 'sdfsdf'].forLoop(function(item, done) { >> console.log(item, done) >> done(item) >> }, function(result) { >> console.log(result) >> }) >> >> -- >> Job Board: http://jobs.nodejs.org/ >> Posting guidelines: >> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >> You received this message because you are subscribed to the Google >> Groups "nodejs" group. >> To post to this group, send email to nodejs@googlegroups.com >> To unsubscribe from this group, send email to >> nodejs+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/nodejs?hl=en?hl=en >> > >
-- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en