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”,我想对数据库中的每个对象执行一些操作(我将在理清此问题后执行此操作)然后设置“winingTeam”字段更改为 3。它工作正常,但出于某种原因,如果我说..数据库中的 20 个对象,当我运行此代码时,只有其中 9 个得到更新,如果我有 50 个对象,则 9 个得到更新,如果我有9或更少他们都会更新,有点困惑为什么。我是解析云和 javascript 的新手,所以我可能只是做了一些愚蠢的事情或者没有保存正确的 idk,但它找到了所有对象,但只更新了其中一些对象。
最佳答案
尝试等待所有 save()
调用返回,然后再调用 response.success()
:
// 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);
});
关于javascript - 当我运行此 javascript 解析云代码时,只有部分解析对象更新(始终为 9,但不再更新),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31732219/