javascript - from - jquery get metadata
Consulta dentro de Parse Cloud For Loop (1)
Creo que el problema es que estás enviando respuestas varias veces, debes esperar a que todas las promesas finalicen y luego enviar una respuesta:
Parse.Cloud.define(''updateAllUsers'', function(request, response) {
var UserData = Parse.Object.extend(''UserData'');
var query = new Parse.Query(UserData);
var list = request.params.listID;
var currentuser = request.params.user;
function checkUserData(userdata){ // returns parse promise for a particular userdata
return query.get(userdata).then(function(){
UserData.addUnique(''Done'', +1);
UserData.save();
});
}
Parse.Promise.when(list.map(checkUserData)) // mapping all the elements in the list to resp promises
.then(function(){ // on success
response.success(''Should add up'');
}).catch(function(e){ // on failure
response.error(''something went wrong'' );
});
});
Editar: si por alguna razón el map
no está disponible (en el caso de navegadores más antiguos o la list
no es una matriz de JavaScript normal), puede hacer algo como:
Parse.Cloud.define(''updateAllUsers'', function(request, response) {
var UserData = Parse.Object.extend(''UserData'');
var query = new Parse.Query(UserData);
var list = request.params.listID;
var currentuser = request.params.user;
var promises = [];
function checkUserData(userdata){ // returns parse promise for a particular userdata
return query.get(userdata).then(function(){
UserData.addUnique(''Done'', +1);
UserData.save();
});
}
for(var i=0;i<list.length;i++){
promises.push(checkUserData(list[i]));
}
Parse.Promise.when(promises) // once all the promises are resolved...
.then(function(){ // on success
response.success(''Should add up'');
}).catch(function(e){ // on failure
response.error(''something went wrong'' );
});
});
He intentado ejecutar mi Código de nube Parse durante algún tiempo y parece que no puede evitar este problema:
Tengo una matriz de Parse objectId
llamada IDArray . Entonces estoy enviando la matriz como un parámetro de una llamada PFCloud
. Una vez que la matriz se ha enviado al Código de la nube, no puedo crear con éxito un for loop
que atraviese y actualice un valor numérico almacenado como "puntos" en Parse para cada objectId
.
En pocas palabras, esto es todo lo que estoy tratando de lograr:
- Solo necesito poder hacer que el
for loop
objectId
cadaobjectId
y realice una acción para cada ID.
He estado tratando de hacer que esto funcione durante un tiempo, pero no he tenido suerte. Aquí está el código que he intentado manipular, espero que le dé a alguien un punto de partida para responder mi pregunta.
Parse.Cloud.define(''updateAllUsers'', function(request, response) {
var UserData = Parse.Object.extend(''UserData'');
var query = new Parse.Query(UserData);
var list = request.params.listID;
var currentuser = request.params.user;
for (var i = 0; i < list.length; i++) {
var userdata = list[i];
query.get(userdata, {
success: function(UserData) {
response.success(''Should add up'');
UserData.addUnique(''Done'', +1);
UserData.save();
},
error: function() {
response.error(''something went wrong'' );
}
});
}
});
Si alguien pudiera ayudarme con esto, estaría muy agradecido. Gracias