code: function resolveValue () {
      // promise to resolve with value
      var promise
      // resolve string value
      if (typeof this.value === 'string') {
          promise = this.resolveString()
      }
      // resolve array value
      else if (Array.isArray(this.value)) {
          // resolve array of objects
          if (this.isObjectArray) {
              promise = this.resolveObjectArray()
          }
          // resolve array of id strings
          else {
              promise = this.resolveArray()
          }
      }
      // resolve object value
      else if (this.value && typeof this.value === 'object') {
          promise = this.resolveObject()
      }
      // do nothing
      else {
          return Promise.resolve()
      }
      // wait for promise to resolve then set value in data
      return promise.then(value => {
          // set resolved value
          _.set(this.data, this.setProperty, value)
      })
  }
docs: @function resolveValue
  
  resolve data value pointed to by property
  
  @returns {Promise}