def wait_for(self, timeout=None):
        """ When a timeout should be applied for awaiting use this method.
        :param timeout: optional timeout in seconds.
        :returns: a future returning the emitted value
        """
        from broqer.op import OnEmitFuture  # due circular dependency
        return self | OnEmitFuture(timeout=timeout)