async function request(url, format) {
    const df = this;
    let status = 0,
      data;
    try {
      data = await df.loader().load(url, {
        context: 'dataflow',
        response: responseType(format && format.type)
      });
      try {
        data = df.parse(data, format);
      } catch (err) {
        status = -2;
        df.warn('Data ingestion failed', url, err);
      }
    } catch (err) {
      status = -1;
      df.warn('Loading failed', url, err);
    }
    return {
      data,
      status
    };
  }
Request data from an external source, parse it, and return a Promise.
@param {string} url - The URL from which to load the data. This string
  is passed to the vega-loader load method.
@param {object} [format] - The data format description for parsing
  loaded data. This object is passed to the vega-loader read method.
@return {Promise} A Promise that resolves upon completion of the request.
  The resolved object contains the following properties:
  - data: an array of parsed data (or null upon error)
  - status: a code for success (0), load fail (-1), or parse fail (-2)