只有一些我的解析对象更新(总是9,但没有更多),当我运行这个javascript解析云代码

Only some of my parse object update (Always 9 but no more) when I run this javascript parse cloud code

本文关键字:运行 代码 javascript 更新 对象 我的 总是      更新时间:2023-09-26
Parse.Cloud.define("getPicks", function(request,response){
var picks = new Parse.Query("Picks");
var num=0;
picks.find({
    success: function(results)
    {
        if ( results.length == 0 )
        {
            // No picks in databade
            response.success("No picks are live");
        }
        else
        {
            for(var i=0;i<results.length;i++){
                result=results[i];
                result.set("winningTeam",3);
                result.save();
                num++;
            }
            response.success("Found "+results.length+" pick objects!"+" num is "+num);
        }
    },
    error: function(error) {
        response.error("Query failed. Error = " + error.message);
    }
});
});

我试图更新所有这些选择对象设置他们的获胜团队为"3",我想做一些与数据库中的每个对象(我将这样做后,我有这个理顺),然后设置"winningTeam"字段为3。它工作正常,但出于某种原因,如果我说…数据库中有20个对象,运行代码时只有9个被更新,如果有50个对象,9个被更新,如果有9个或更少,它们都被更新,我不知道为什么。我是新的解析云和javascript,所以我可能只是做了一些愚蠢的事情或没有保存正确的idk,但它找到所有的对象,但只更新其中的一些。

尝试在调用response.success()之前等待所有save()调用返回:

// find your picks
picks.find()
// when it finishes
.then(function(results) {
  // build an array with a promise for each save call
  var savePromises = results.map(function(result) {
    return result.save({winningTeam: 3});
  });
  // and wait for all of them to finish
  return Parse.Promise.when(savePromises);
}).then(function() {
  // if everything went ok
  response.success();
}, function(err) {
  // if something bad happened
  response.error(err);
});