我正在使用以下代码从用户好友列表中删除currentUser
。
result.set("DateUserList", datelistArr);
这有效,但是:
result.save();
不起作用 - 检查数据浏览器时我没有看到更改。
Parse.Cloud.define("hello", function(request, response) {
response.success(“Hello world!”); });
Parse.Cloud.define(“DeleteUserFromDateList”,function(request,response){
var userToDelete = String(request.params.currentUser);
var user = String(request.params.dateid);
var query = new Parse.Query("User");
query.equalTo("fbId", user);
query.first(
{
success: function (result)
{
var datelistArr = result.get("DateUserList");
for(j = 0 ; j < datelistArr.length;j++)
{
if (datelistArr[j] == userToDelete)
{
console.log("found a match");
datelistArr.splice(j);
console.log("deleted");
break;
}
}
console.log(datelistArr);
result.set("DateUserList", datelistArr);
result.save().then(function (savedObj)
{
response.success(userToDelete + "is deleted from " + user + " friend list");
},
function (saveError)
{
response.error("Unable to create this object");
});
},
error: function () {
response.error("Error occured on User deletion");
}
});
});
答案 0 :(得分:1)
保存是异步的,在调用response.success()之前,您不会等待它完成。使用此promise语法在保存结果时调用成功。
result.save().then(function(obj) {
response.success(....
}, function(err) {
...
});
答案 1 :(得分:1)
我需要做的就是在云方法的顶部添加以下代码:
Parse.Cloud.useMasterKey();
参考: https://parse.com/docs/cloud_code_guide
出现问题是因为我需要在更改其他用户数据时使用useMasterKey()方法。