Parse platform 如何在解析中为一个用户分配多个角色?

Parse platform 如何在解析中为一个用户分配多个角色?,parse-platform,Parse Platform,我已经编写了一些云代码,在保存每个用户后执行。在内部,我想将用户添加到两个角色,Alpha和Free,但这段代码只成功地将新用户添加到Alpha角色;自由角色在用户表中没有数据。在解析中是否有一种方法可以为用户分配多个角色 这是我的云代码 Parse.Cloud.afterSave(Parse.User, function(request, response) { Parse.Cloud.useMasterKey(); // grant administrative access to

我已经编写了一些云代码,在保存每个用户后执行。在内部,我想将用户添加到两个角色,Alpha和Free,但这段代码只成功地将新用户添加到Alpha角色;自由角色在用户表中没有数据。在解析中是否有一种方法可以为用户分配多个角色

这是我的云代码

Parse.Cloud.afterSave(Parse.User, function(request, response) {
    Parse.Cloud.useMasterKey(); // grant administrative access to write to roles
    var user = request.object;

    query = new Parse.Query(Parse.Role);
    query.equalTo("name", "Alpha");
    query.first ( {
        success: function(object) {
            object.relation("users").add(user);
            object.save();
            response.success("The user has been authorized.");
        },
        error: function(error) {
            response.error("User authorization failed!");
        }
    });

    query = new Parse.Query(Parse.Role);
    query.equalTo("name", "Free");
    query.first ( {
        success: function(object) {
            object.relation("users").add(user);
            object.save();
            response.success("The user has been authorized.");
        },
        error: function(error) {
            response.error("User authorization failed!");
        }
    });
});

问题在于排序。我们需要在调用response.success()之前完成所有查询和保存。正如现在一样,代码中操作的时间是不确定的。使用parse sdk返回的承诺来清理它

Parse.Cloud.afterSave(Parse.User, function(request, response) {
    Parse.Cloud.useMasterKey(); // grant administrative access to write to roles
    var user = request.object;
    query = new Parse.Query(Parse.Role);
    query.equalTo("name", "Alpha");
    query.first().then(function(object) {
        object.relation("users").add(user);
        return object.save();
    }).then(function() {
        query = new Parse.Query(Parse.Role);
        query.equalTo("name", "Free");
        return query.first();
    }).then(function(object) {
        object.relation("users").add(user);
        return object.save();
    }).then(function() {
        response.success("The user has been authorized.");
    }, function(error) {
        response.error("error: " + error.message);
    });  
});

非常感谢你!真不敢相信我居然没想到。您的解决方案非常有效。