javascript - Asynchron Errorhandling inside $.each -


i on server side node.js , somehow caught in callbacks. use following function insert data in table mysql pkg:

  connection.query('insert tablename set ?', post, function(err, result)    {     if (err) {       if (err.code === 'er_dup_entry')         {  }       else         { throw err; }     }   }); 

i want log how many duplicate entries there without stoping loop calls above function $.each.

it says here have 3 possibilities: throw, callbacks , eventemitter. throwing won't work, since stops everything. tried callbacks, because in callback $.each could'nt find away in above scope. didn't try static eventemitter since don't know how return value $.each selector, except selected data.

any suggestions appriciated.

nest in closure , count finished queries in callback, know when last query finished:

(function(){   var errors = 0;   var started = 0;   var successful = 0;   $.each(..., function(){     started++;     connection.query('insert tablename set ?', post, function(err, result)      {       if (err) {         if (err.code === 'er_dup_entry')           { errors++; }         else           { throw err; }       } else { successful++;}       if (started == successful + errors) {          // done          console.log(errors + " errors occurred");       }     });   }); })(); 

Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

json - Gson().fromJson(jsonResult, Myobject.class) return values in 0's -