云代码需要错误"成功/错误未被调用"去工作

Parse.com Cloud code needs error "success/error was not called" to work

本文关键字:quot 错误 调用 工作 代码 成功      更新时间:2023-09-26

我有这一点云代码,但只有当我得到"success/error was not called"错误作为响应时,它似乎才有效。

Parse.Cloud.define("Move", function(request, response) {
    var params = request.params;
    var Player = Parse.Object.extend("Player");
    query = new Parse.Query("Player");
    query.get(params.id, {
        success: function(p) {
            switch(params.direction){
                case "up":    p.set("mapy", p.get("mapy") - 1, { success: function(p) {}, error: function(p, error) { response.error(error);}}); break;
                case "down":  p.set("mapy", p.get("mapy") + 1, { success: function(p) {}, error: function(p, error) { response.error(error);}}); break;
                case "left":  p.set("mapx", p.get("mapx") - 1, { success: function(p) {}, error: function(p, error) { response.error(error);}}); break;
                case "right": p.set("mapx", p.get("mapx") + 1, { success: function(p) {}, error: function(p, error) { response.error(error);}}); break;
            }
            p.save();
        },
        error: function(error) {
            console.error("Got an error " + error.code + " : " + error.message);
        }
    });
}
//response.success("success ");

如果最后一行运行(没有注释),我将得到一个积极的响应,但对解析上的变量没有改变我应该使用aftersave吗?如果有,怎么做?

既然你正在处理返回的对象,所以我认为你应该在这里使用承诺链接的概念:https://parse.com/docs/js/guide#promises

Parse.Cloud.define("Move", function(request, response) {
    var params = request.params;
    var Player = Parse.Object.extend("Player");
    query = new Parse.Query("Player");
    query.get(params.id).then(function(p) {
            switch(params.direction){
                case "up":    p.set("mapy", p.get("mapy") - 1); break;
                case "down":  p.set("mapy", p.get("mapy") + 1); break;
                case "left":  p.set("mapx", p.get("mapx") - 1); break;
                case "right": p.set("mapx", p.get("mapx") + 1); break;
            }
            return p.save();
        }).then(function(success){
                response.success();
        },function(error){
           console.error("Got an error " + error.code + " : " + error.message);
           });
    });