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.

def users(self, limit=None, after=None):
        """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.
        """

        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)