constructor (result, state) {
    const replayedResult = result.pipe(publishReplay(1), refCount())

    this._result = replayedResult
    this._keys = replayedResult.pipe(
      mergeMap(r => from(r.keys())),
      publishReplay(1),
      refCount()
    )
    this._records = undefined
    this._controls = new StreamControl()
    this._summary = new ReplaySubject()
    this._state = state || States.READY
  }
@constructor
@protected
@param {Observable<Result>} result - An observable of single Result instance to relay requests.
@param {number} state - The streaming state