tag from for data array javascript jquery parse.com promise cloud-code

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 cada objectId 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