解析服务器因角色保存而超时

时间:2018-03-03 21:57:53

标签: javascript parse-platform parse-server

Parse.Cloud.define('assignRole', function(request, response){
Parse.Cloud.useMasterKey();

var user = Parse.User.current();

var roleQuery = new Parse.Query(Parse.Role);
roleQuery.equalTo("name", "UserManager");

roleQuery.first({ useMasterKey: true }).then(function (role) {
    role.getUsers().add(user);
    return role.save();
}, function (error) {
    console.log(JSON.stringify(error));
    response({success:false})
}).then(function (userRole) {
    if(userRole) {
        response({success:true})
    } else {
        response({success:false})
    }
});
});

任何想法为什么?我得到504,它总是超时。我究竟做错了什么? 类似的代码适用于afterSave。

1 个答案:

答案 0 :(得分:0)

两件事:如果您的roleQuery失败,则传递response.success。然而,promises的工作方式,它将返回一个空的已解决的promise,它被传递到promise链中的下一个链接,因此最后一个.then()处理程序的成功块将被调用,你将得到一个错误多次呼叫响应。

另一个:你在第二个.then()中没有错误处理程序,所以我的赌注是你的role.save()失败了(权限可能是?尝试role.save(null, {useMasterKey:true});,如果那是如果你没有调用response.error或response.success。