1

I'm trying to inform all members of a group, including the owner of the group, of changes to the membership. I have:

// Group: owner
// Membership: group, member

Parse.Cloud.afterSave("Membership", function(request) {
   var group = request.object;
   var owner = group("owner"); // I need to reference below in callback

   var q = new Parse.Query("Membership");
   q.equalTo("group", group);
   q.find().then(
      function(memberships) {
         var members = new Array;

         // include the owner in our push.
         members.push(owner); // <--- badness?

         var len = memberships.length;
         for (var i=0; i<len; ++i) {
           if (i in memberships) {
             var membership = memberships[i];
             var member = membership.get("member");
             members.push(member);
           }
         }

         var push = new Parse.Query(Parse.Installation);
         push.containedIn("members",members);
         // send the push, etc
      },
      function(error) { ... }
   );
});

Yes, I've considered making the owner a member, and that may be the better way, but here I am. How can I reference the owner of the group from inside the query success callback? Restructuring this afterSave() is easier than restructuring my model.

QED
  • 9,803
  • 7
  • 50
  • 87
  • http://stackoverflow.com/questions/21139504/passing-a-variable-to-an-asynchronous-function-promise-in-javascript – ceejayoz Dec 07 '14 at 03:25
  • While this is likely out-of-date, the basic question here is why do you need to do the push to the owner within the members push loop? Simply do it outside and you should be good-to-go. – drew.. Mar 08 '17 at 00:13

0 Answers0