Skip to content

Instantly share code, notes, and snippets.

@markmssd
Forked from Calvein/getObjects.js
Created March 19, 2017 01:27
Show Gist options
  • Save markmssd/878aa1dcb8852c2e6714f1c2b76fe97b to your computer and use it in GitHub Desktop.
Save markmssd/878aa1dcb8852c2e6714f1c2b76fe97b to your computer and use it in GitHub Desktop.
Get all objects from a parse class
// Returned promise
var promise = new Parse.Promise()
// Error function
var error = function() {
console.error('Error:', arguments)
// Break it
response.error('Query failed, check logs')
}
var query = new Parse.Query('Object')
var objects = []
var totalObjects
module.exports = function() {
// Get the total of objects
query.count({
success: function(count) { totalObjects = count }
, error: error
}).done(function() {
var skip = 0
var populate = function(_objects) {
objects = objects.concat(_objects)
// Set the new skip
skip += 1000
// If skip passed the maximum skip limit:
// * Reset skip
// * Query on the last of the old object
if (skip > 10000) {
skip = 0
var createdAt = _objects[_objects.length - 1].createdAt
query.greaterThanOrEqualTo('createdAt', createdAt)
}
// Loop when we don't have all the objects
if (objects.length < totalObjects) {
loop()
// Reslve the promise with all the objects when we have them
} else {
promise.resolve(objects)
}
}
var loop = function() {
query.ascending('createdAt').limit(1000).skip(skip)
query.find({
success: populate
, error: error
})
}
loop()
})
return promise
}
var getObjects = require('./getObjects')
getObjects().done(function(_objects) {
// Do stuff
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment