code: function result () {
      // wait for all queries to complete then build result
      return this.promise.then(results => {
          // if the entire result set is a cached view then skip processing
          if (results._cachedView) {
              // result is from collection view
              if (this.modelViewEngine.hasCollection) {
                  return results
              }
              // result is record(s)
              else {
                  return this.resultRaw(results)
              }
          }
          // order results if needed
          if (results.length > 1) {
              results = this.orderResults(results)
          }
          // if there are model views then build result with ModelViewEngine
          // otherwise build result based on raw data
          return defined(this.modelViewEngine)
              ? this.resultModelView(results)
              : this.resultRaw(results)
      })
  }
docs: @function result
  
  bulid query result based on response and args
  
  @returns {Promise}