为什么它只更新九行?
你有可能 超时 。从Parse Cloud代码指南:
在15秒的挂钟时间后,云功能将被杀死... 如果您需要更多时间在Cloud Code中执行操作,请考虑使用 背景工作 。
编辑:
我还应该指出这段代码:
for (i = 0; i < recipients.length; i++) { var recipient = recipients[i]; recipient.set(columnName, true); recipient.save (); } response.success("Updated " + recipients.length + "-many recipients");
不等待保存完成。它遍历所有收件人并将它们保存在后台。循环代码完成时,它会调用 response.success(...) 这会停止任何进一步的执行。
response.success(...)
你应该用 许诺 要并行运行保存代码并等待所有任务完成,然后您可以调用成功/失败。例如,您的代码可能是:
recipientQuery.find().then(function(recipients) { var promises = []; for (var i = 0; i < recipients.length; i++) { var recipient = recipients[i]; recipient.set(columnName, true); promises.push(recipient.save ()); }); // Return a new promise that is resolved when all of the saves are finished. return Parse.Promise.when(promises); }).then(function() { response.success(...); }, function(error) { response.error(error.message); });