code: public final Flux<List<T>> bufferWhile(Predicate<? super T> predicate) {
  		return onAssembly(new FluxBufferPredicate<>(this, predicate,
  				listSupplier(), FluxBufferPredicate.Mode.WHILE));
  	}
docs: Collect incoming values into multiple {@link List} buffers that will be emitted by
  the resulting {@link Flux}. Each buffer continues aggregating values while the
  given predicate returns true, and a new buffer is created as soon as the
  predicate returns false... Note that the element that triggers the predicate
  to return false (and thus closes a buffer) is NOT included in any emitted buffer.
  <p>
  <img class="marble" src="doc-files/marbles/bufferWhile.svg" alt="">
  <p>
  On completion, if the latest buffer is non-empty and has not been closed it is
  emitted. However, such a "partial" buffer isn't emitted in case of onError
  termination.
  
  @reactor.discard This operator discards the currently open buffer upon cancellation or error triggered by a data signal,
  as well as the buffer-triggering element.
  
  @param predicate a predicate that triggers the next buffer when it becomes false.
  @return a microbatched {@link Flux} of {@link List}