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

问题描述 投票:0回答:1
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。

javascript parse-platform parse-server
1个回答
0
投票

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

另一个:你没有在第二个.then()中有一个错误处理程序,所以我的赌注是你的role.save()失败了(也许权限?尝试role.save(null, {useMasterKey:true});,如果是这样的话,你永远不会调用响应。错误或response.success。

© www.soinside.com 2019 - 2024. All rights reserved.