title: Parse.com: query.each executes in parrallel, reaches limit
body: <p>I am running a batch job and I would like them to be run serially for each query result
  The problem is that it seems that query.each executes everything in parrallel</p>
  
  <p>How can I change my code to have everything execute serially?</p>
  
  <pre><code>Parse.Cloud.job("fetchMenus", function(request, status) {
  
    var counter = 0;
    // Query for all users
    var LocationSP = Parse.Object.extend("Location");
    var query = new Parse.Query(LocationSP);
    query.doesNotExist("menu");
    query.equalTo("city_lc","new york");
    // query.limit(10);
    var p = Parse.Promise.as("");
  
    query.each(function(location) {
  
      p = p.then(function(){
  
      if (counter % 100 === 0) {
          // Set the  job's progress status
          status.message(counter + " users processed.");
        }
      // console.log(location);
      // console.log(location.get("location_id"));
  
          Parse.Cloud.run('getMenu2', {alias: location.get("location_id") }, {
            success: function(result) {
              // result is 'Hello world!'
              counter += 1;
              return Parse.Promise.as("1");
            },
            error: function(error) {
              return Parse.Promise.as("1");
            }
          });
      })
  
      return p;
  
  
    }).then(function() {
      // Set the job's success status
      status.success("Migration completed successfully.");
    }, function(error) {
      // Set the job's error status
      status.error("Uh oh, something went wrong." + error);
    });
  });
  </code></pre>