code: protected CompletableFuture<ExecutionResult> resolveField(ExecutionContext executionContext, ExecutionStrategyParameters parameters) {
          return resolveFieldWithInfo(executionContext, parameters).thenCompose(FieldValueInfo::getFieldValue);
      }
docs: Called to fetch a value for a field and resolve it further in terms of the graphql query.  This will call
  #fetchField followed by #completeField and the completed {@link ExecutionResult} is returned.
  <p>
  An execution strategy can iterate the fields to be executed and call this method for each one
  <p>
  Graphql fragments mean that for any give logical field can have one or more {@link Field} values associated with it
  in the query, hence the fieldList.  However the first entry is representative of the field for most purposes.
  
  @param executionContext contains the top level execution parameters
  @param parameters       contains the parameters holding the fields to be executed and source object
  
  @return a promise to an {@link ExecutionResult}
  
  @throws NonNullableFieldWasNullException in the future if a non null field resolves to a null value