def stream(self, handler, whenDone=None):
    """
    Fetches data from river streams and feeds them into the given function.
    :param handler: (function) passed headers [list] and row [list] of the data
                    for one time step, for every row of data
    """
    self._createConfluence()
    headers = ["timestamp"] + self.getStreamIds()
    for row in self._confluence:
      handler(headers, row)
    
    if whenDone is not None:
      return whenDone()