code: def users(self, limit=None, after=None):
          
  
          if self.custom_emoji:
              emoji = '{0.name}:{0.id}'.format(self.emoji)
          else:
              emoji = self.emoji
  
          if limit is None:
              limit = self.count
  
          return ReactionIterator(self.message, emoji, limit, after)
docs: Returns an :class:`AsyncIterator` representing the users that have reacted to the message.
  
          The ``after`` parameter must represent a member
          and meet the :class:`abc.Snowflake` abc.
  
          Examples
          ---------
  
          Usage ::
  
              # I do not actually recommend doing this.
              async for user in reaction.users():
                  await channel.send('{0} has reacted with {1.emoji}!'.format(user, reaction))
  
          Flattening into a list: ::
  
              users = await reaction.users().flatten()
              # users is now a list...
              winner = random.choice(users)
              await channel.send('{} has won the raffle.'.format(winner))
  
          Parameters
          ------------
          limit: :class:`int`
              The maximum number of results to return.
              If not provided, returns all the users who
              reacted to the message.
          after: :class:`abc.Snowflake`
              For pagination, reactions are sorted by member.
  
          Raises
          --------
          HTTPException
              Getting the users for the reaction failed.
  
          Yields
          --------
          Union[:class:`User`, :class:`Member`]
              The member (if retrievable) or the user that has reacted
              to this message. The case where it can be a :class:`Member` is
              in a guild message context. Sometimes it can be a :class:`User`
              if the member has left the guild.