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