async _dataRequestHTTP(headers = {}) {
    try {
      const res = await axios.get(this.filepath, {
        responseType: 'arraybuffer',
        headers,
        onDownloadProgress: e => {
          if (e.lengthComputable) {
            const percentComplete = Math.round(100 * e.loaded / e.total)
            this.events.emit('loadingProgress', percentComplete)
          }
        },
        cancelToken: axiosSource.token
      })

      this._decodeProtobuf(new Uint8Array(res.data))
    } catch (err) {
      if (axios.isCancel(err)) {
        console.log('[Model] Data request canceled', err.message)
      } else {
        throw err
      }
    }
  }
Makes data HTTP request (browser or node)

@param {Object} [headers] - any headers to be passed along with request
@returns {Promise}