今日来看发送申请的dispatchRequest.
dispatchRequest就是一个函数,承受config做参数,外围是应用adapter(config中的属性)办法发送申请,而后将返回的数据进行转换.因为是promise,所以胜利返回response,失败返回reject谬误

'use strict';var utils = require('./../utils');var transformData = require('./transformData');var isCancel = require('../cancel/isCancel');var defaults = require('../defaults');/** * Throws a `Cancel` if cancellation has been requested. *  * 抛出一个Cancel 如果一个cancellation曾经被申请 */function throwIfCancellationRequested(config) {  if (config.cancelToken) {    config.cancelToken.throwIfRequested();  }}/** * Dispatch a request to the server using the configured adapter. *  * 应用配置的适配器给服务器散发一个申请 * * @param {object} config The config that is to be used for the request   申请的配置 * @returns {Promise} The Promise to be fulfilled  返回实现的Promise */module.exports = function dispatchRequest(config) {  throwIfCancellationRequested(config);  // Ensure headers exist   确保头部存在  config.headers = config.headers || {};  // Transform request data   转化申请数据  config.data = transformData(    config.data,    config.headers,    config.transformRequest  );  // Flatten headers  使头部扁平化  config.headers = utils.merge(    config.headers.common || {},    config.headers[config.method] || {},    config.headers  );  utils.forEach(    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],    function cleanHeaderConfig(method) {      delete config.headers[method];    }  );  var adapter = config.adapter || defaults.adapter;  return adapter(config).then(function onAdapterResolution(response) {    throwIfCancellationRequested(config);    // Transform response data    response.data = transformData(      response.data,      response.headers,      config.transformResponse    );    return response;  }, function onAdapterRejection(reason) {    if (!isCancel(reason)) {      throwIfCancellationRequested(config);      // Transform response data      if (reason && reason.response) {        reason.response.data = transformData(          reason.response.data,          reason.response.headers,          config.transformResponse        );      }    }    return Promise.reject(reason);  });};