Javascript 云代码多次保存然后响应成功
我在Parse应用程序数据库中有一个Game类和GamePlayer类,用户在其中玩游戏并赢得硬币 在我的云代码函数中,我有以下代码Javascript 云代码多次保存然后响应成功,javascript,parse-platform,parse-cloud-code,Javascript,Parse Platform,Parse Cloud Code,我在Parse应用程序数据库中有一个Game类和GamePlayer类,用户在其中玩游戏并赢得硬币 在我的云代码函数中,我有以下代码 success : function(results) { Parse.Cloud.useMasterKey(); if (results.length >= 2) { console.log("inside find query1 success."); for (var i = 0; i < object.
success : function(results) {
Parse.Cloud.useMasterKey();
if (results.length >= 2) {
console.log("inside find query1 success.");
for (var i = 0; i < object.length; i++) {
if (i == 0) {
results[0].set("finish_msg", "You won!");
results[0].attributes.playerId.set("coins", (results[0].attributes.playerId.attributes.coins + 10) );
} else if (i == 1) {
results[1].set("finish_msg", "You won!");
results[1].attributes.playerId.set("coins", (results[1].attributes.playerId.attributes.coins + 5) );
} else {
object[i].set("finish_msg", "You lost!");
}
object[i].save();
}
response.success({
"result" : true
});
}
}
成功:功能(结果){
Parse.Cloud.useMasterKey();
如果(results.length>=2){
log(“内部查找查询1成功”);
对于(变量i=0;i
这里,playerId是指向用户表的指针,我将第一个和第二个用户的硬币分别增加10和5
我要做的是设置所有用户的完成消息状态(win/lost),并在保存后向客户端发送成功响应。这里的保存过程需要一些时间。如何等待保存过程完成
目前,此代码有时有效,有时无效。特别是当结果长度大于3时
请建议如何更改代码以使其正常工作。对象[I]。save()
异步运行,而response.success()
会停止任何正在进行的操作。因此,在开始下几个循环时,早期保存finish,然后在循环结束时停止所有操作
解决这个问题的方法是承诺
var promises = [];
for (var i = 0; i < object.length; i++) {
// ... your for-loop code
// add a promise to save to the array of promises
promises.push(object[i].save());
}
// return a promise that is fulfilled when all the promises in the array are fulfilled
Parse.Promise.when(promises).then(function() {
// all of the saved objects are in 'arguments'
response.success({result:true});
}, function(error) {
response.error(error); // return errors, too, so you can debug
});
var承诺=[];
对于(变量i=0;i
请回答一个问题:是否所有存储都以[i]的顺序以串行方式终止,或者每个存储都可以在自己的时间终止?thanks@GPack循环或承诺都不能保证顺序。when()