解析[错误]:未调用success/error(代码:141,版本:1.9.0)

Parse [Error]: success/error was not called (Code: 141, Version: 1.9.0)

我正在尝试编写一个 Cloud Code 函数,允许我编辑另一个用户的数据,因为我无法在它自己的应用程序中这样做。代码的作用(我应该说尝试做,因为我不知道 JS)是使用基于输入的两个对象 ID 的两个单独查询来获取用户对象和组(我创建的 class)对象。这是我的代码

Parse.Cloud.define("addInvite", function(request, response) { 
Parse.Cloud.useMasterKey();

var userID = request.params.user;
var groupID = request.params.group;

var user;
var group;


var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo("objectId", userID);


return userQuery.first
({
    success: function(userRetrieved)
    {
        user = userRetrieved;    
    },
    error: function(error)
    {
        response.error(error.message);
    }
});



var groupObject = Parse.Object.extend("Group");
var groupQuery = new Parse.Query(groupObject);
groupQuery.equalTo("objectId", groupID);


return groupQuery.first
({
    success: function(groupRetrieved)
    {
        group = groupRetrieved;    
    },
    error: function(error)
    {
        response.error(error.message);
    }
});
var relations = user.relation("invited");
relations.add(group);

user.save();
response.success(); 

});

每次执行该方法时都会出现错误: [错误]:未调用success/error(代码:141,版本:1.9.0)

有人可以帮忙吗?谢谢

Parse Cloud 中的每个函数 return 都是一个 Promise。这还包括您 运行 检索某些数据的任何查询函数。很明显,在您的代码中,当您执行一个查询时,您正在 returning 一个 Promise,当您的查询完成时,该查询会突然结束您的云功能。由于您没有在任何成功块中调用 response.success()response.error(),因此您的云函数 returns 没有设置合适的响应,这是 Parse 需要的,因此会出现错误。您的代码需要链接所有的承诺,以确保您的代码正确执行,并且 return success/error 最后一步:

Parse.Cloud.define("addInvite", function(request, response) { 

    Parse.Cloud.useMasterKey();

    var userID = request.params.user;
    var groupID = request.params.group;

    var user;
    var group;

    var userQuery = new Parse.Query(Parse.User);
    userQuery.equalTo("objectId", userID);

    userQuery.first().then(function(userRetrieved) {
        user = userRetrieved;     
        var groupObject = Parse.Object.extend("Group");
        var groupQuery = new Parse.Query(groupObject);
        groupQuery.equalTo("objectId", groupID);
        return groupQuery.first();

    }).then( function(groupRetrieved) {
        //group = groupRetrieved;    
        var relations = user.relation("invited");
        relations.add(groupRetrieved);
        return user.save();

    }).then(function() {
        response.success(); 

    }, function(error) {
        response.error(error.message);
    });

});