云代码多次保存然后响应成功
cloud code multiple save then response success
我在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.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
});
}
}
这里,playerId是一个指向User表的指针,我将第一个和第二个用户的硬币分别增加10和5。
我想做的是设置所有用户的完成消息状态(获胜/失败),并在保存后向客户端发送成功响应。在这里,保存过程需要一些时间。如何等待保存过程完成?
目前,此代码有时有效,有时无效。特别是当结果长度大于3。
请建议我如何更改代码以正确工作。
object[i].save()
异步运行,response.success()
停止任何正在进行的操作。因此,在接下来的几次保存开始时,早期的保存会结束,然后在循环结束时,一切都会停止。
解决这一问题的方法是承诺。。。
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
});
相关文章:
- 通过 AJAX 调用 PHP 文件,将 $_GET 变量传递到 MySQL 查询中,然后回显到响应中
- IE 10 挂起 XMLHttpRequest 6 分钟,然后响应请求(使用 AngularJS 实现 CRSF)
- 在javascript中获取 http.post,然后发送响应
- 响应式导航在页面加载时打开,然后隐藏.应该在页面加载时隐藏
- Phantomjs 检查响应标头,然后执行某些操作
- 等待方法的响应,然后再继续而不使用 SJAX
- 我可以在本地发出 ajax 请求,然后将响应发送到互联网吗?
- 每个CasperJS然后是响应数组的下一个(未来)值
- 响应元素显示:无;在移动宽度,然后通过javascript按钮返回,但显示的链接断开:block;
- 如何从javascript中POST,然后使用POST响应进行更新
- 如何将两个getjson响应合并为一个变量,然后处理该变量
- JQuery试图打印选中复选框的表的列,然后打印来自web服务器的响应
- 流星:返回承诺's,然后再响应HTTP发布请求
- 云代码多次保存然后响应成功
- AngularJS:如何加载第一个N个JSON响应,然后在页面渲染后请求rest
- 当缩放浏览器窗口到给定的浏览器窗口宽度时,向下裁剪图像.然后让图像的其余部分响应
- 如何发布json对象到web api,然后接收响应
- 如何对JSONP请求返回即时响应,然后继续处理
- 向AJAX响应添加参数,然后根据返回参数应用操作
- 如何通过ajax将变量发送到服务器(Java),然后加载带有响应的DataTable