code: function() {
  
              // always take 1000 unless we're almost done
              var take = left < 1000 ? left : 1000;
  
              // Hit the API and incremement the page
              q._fetch(table, take, page++, query, fields).then(function(res) {
  
                  // publish progress
                  doneLoading.notify(q._results.length);
  
                  if (left !== undefined) left -= res.length;
  
                  // Either resolve the the promise with the results if we're
                  // done or call the loop again
  
                  if (q._doneLoading || left <= 0)
                      doneLoading.resolve(q._getResults());
                  else
                      process.nextTick(loop);
  
              }).catch(function(err) {
                  doneLoading.reject(err);
              });
          }
docs: A single iteration of fetching via the API. Called repeatedly in the case of large / unbounded TAKES