public final <R> Call<R> flatMap(FlatMapper<V, R> flatMapper) {
    return new FlatMapping<>(flatMapper, this);
  }
Maps the result of this call into another, as defined by the {@code flatMapper} function. This
is used to chain two remote calls together. For example, you could use this to chain a list IDs
call to a get by IDs call.

<pre>{@code
getTracesCall = getIdsCall.flatMap(ids -> getTraces(ids));

// this would now invoke the chain
traces = getTracesCall.enqueue(tracesCallback);
}</pre>

Cancelation propagates to the mapped call.

<p>This method intends to be used for chaining. That means "this" instance should be discarded
in favor of the result of this method.
zipkin/src/main/java/zipkin2/Call.java