解析云代码save()似乎没有保存字段

时间:2015-02-06 14:09:55

标签: javascript parse-platform cloud-code

我正在尝试在检索到的_User对象上运行save(),但它似乎没有保存我修改过的字段(“ignoredUsers”),这是一个数组。虽然我可以看到保存实际已经通过,因为updatedAt确实发生了变化。

以下是代码:

    var query = new Parse.Query(Parse.User);
    query.equalTo("objectId", userid1);
    query.first({
      success: function(result){
        var ignored = result.get("ignoredUsers");
        if (!ignored) {
          ignored = [];
        }
        ignored.push(userid2);
        result.set("ignoredUsers", ignored);
        result.save();
      }
    });

1 个答案:

答案 0 :(得分:0)

function appendUser(toUser, userId) {
  return toUser.fetch({
    success: function(user) {
      var ignored = user.get("ignoredUsers");
      if (!ignored) {
        ignored = [];
      }
      ignored.push(userId);
      user.set("ignoredUsers", ignored);
      user.save();
    }
  });
}

Parse.Cloud.job("ignoredUsers", function(request, status) {
  Parse.Cloud.useMasterKey();
  var query = new Parse.Query("Conversation");
  return query.each(function(conversation) {
    var participants = conversation.get("participants");
    var userid1 = participants[0].id;
    var userid2 = participants[1].id;
    var user1 = participants[0];
    var user2 = participants[1];
    return appendUser(user1, userid2).then(function() {
      return appendUser(user2, userid1); });
  });
  status.success();
});

问题是云函数在等待回调完成之前返回