javascript - NodeJS Async: Callback already called? -
i'm using async module in node.js keep track of asynchronous calls. however, i'm getting error - "callback called." can me out here?
async.each(data['results'], function(result, done) { if (result['twitter_id'] !== null) { //isolate twitter handle var param = { "user.screen_name": result['twitter_id']} db.test4.find( param, function(err, users) { if( err ) { return done(err); } else if (!users) { res.send("no user found"); } else { users.foreach( function(result) { twitter_ids.push(result); //console.log(result); done(); }); } }); } }, function(err) { if (err) { throw err } res.send(twitter_ids); });
you're calling res.send("no user found"); each time fail load. can fail load multiple times.
the solution put response code in final callback, not in each callback.
async.each(data['results'], function(result, done) { if (result['twitter_id'] !== null) { //isolate twitter handle var param = { "user.screen_name": result['twitter_id']} db.test4.find( param, function(err, users) { if( err ) { done(err); } else if (!users) { done(new error("no user found")); } else { users.foreach( function(result) { twitter_ids.push(result); //console.log(result); }); done(); } }); } else { done(); } }, function(err) { if (err) { return next(err); } res.send(twitter_ids); });
Comments
Post a Comment