Parse.com云代码需要错误"没有调用成功/错误"上班

时间:2015-06-05 13:52:37

标签: javascript parse-platform cloud-code

我有这个云端代码,但它似乎只有在我得到&#34时才能工作;成功/错误未被调用"错误作为回应。

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吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:0)

由于你正在处理返回的对象,所以我认为你应该在这里使用Promise Chaining的概念: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);
           });
    });