Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Parse.com云代码需要错误“;成功/错误未被称为“成功/错误”;工作_Javascript_Parse Platform_Parse Cloud Code - Fatal编程技术网

Javascript Parse.com云代码需要错误“;成功/错误未被称为“成功/错误”;工作

Javascript Parse.com云代码需要错误“;成功/错误未被称为“成功/错误”;工作,javascript,parse-platform,parse-cloud-code,Javascript,Parse Platform,Parse Cloud Code,我有一些云代码,但它似乎只有在我得到“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.ge

我有一些云代码,但它似乎只有在我得到“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吗?如果是,怎么做?

因为您正在处理返回的对象,所以我认为您应该在这里使用承诺链接的概念:

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);
           });
    });