docs: def next(self, timeout=None):
          """Return the next result value in the sequence. Raise
          StopIteration at the end. Can raise the exception raised by
          the Job"""
          try:
              apply_result = self._collector._get_result(self._idx, timeout)
          except IndexError:
              # Reset for next time
              self._idx = 0
              raise StopIteration
          except:
              self._idx = 0
              raise
          self._idx += 1
          assert apply_result.ready()
          return apply_result.get(0)