title: node async is not runned async
body: <p>I am trying to use <code>async</code> to collect some additional data to my array.</p>
  
  <p>for this purpose ive created the following:</p>
  
  <pre><code>    User_has_academy_module.findAll({
      include: [{model: Module, include: [Category, ModuleType]}],
      where: {academy_team_id: team_id, user_id: user_id}
  }).then(function (modules) {
      var i = 0;
      async.map(modules, function (module,moduleCallback) {
          var act = Academy_Attempt.build();
          if(module.dataValues.is_complete == 1){
              act.findByUserTeamAndModule(module.dataValues.user_id, module.dataValues.academy_team_id, module.dataValues.module_id, function (result) {
                  module.dataValues.academy_attempt = result;
                  moduleCallback(null, module);
  
              }, function (error) {
  
              })
          }
      });
      onSuccess(modules);
  })
  </code></pre>
  
  <p>as you can see from the above i first collect an array called <code>modules</code> that i need loop over for each of these <code>modules</code> i want to find additonal data if a value called <code>is_complete == 1</code></p>
  
  <p>once it finds a value it should set the <code>module.dataValues.academy_attempt = result</code></p>
  
  <p>Once all of the modules have been iterated it should call the callback (<code>onSuccess</code>) and return the modules.</p>
  
  <p>However it runs <code>onSuccess</code> before the async call.</p>
  
  <p>So my question is what am i doing wrong and how can fix it?</p>