Skip to content
On this page

地址:Axios/transformData

transformData函数在dispatchRequest中被调用,用于对请求数据和响应数据进行转换。这个函数比较短,但是涉及到了请求数据和响应数据的转换,也比较重要。

transformData函数主要是对请求数据和响应数据进行转换。在Axios库中,它可以通过transformRequesttransformResponse两个配置项来实现请求和响应数据的转换。这两个配置项可以是一个函数或者是一个函数数组,其中每个函数都会被依次调用。

transformData函数接收三个参数,分别是dataheadersfns。其中data是请求数据或者响应数据,headers是请求或响应的头部信息,fns是一个函数数组,每个函数都用于对数据进行转换。transformData函数首先遍历fns数组中的每个函数,依次对数据进行转换,最终返回转换后的数据。

这里有一个小技巧,即利用数组的reduce方法来实现遍历和调用函数数组的过程,如下所示:

js
return fns.reduce(function (data, fn) {
  return fn(data, headers);
}, data);

该代码段中,reduce方法依次调用fns数组中的每个函数,传入的data参数表示上一个函数返回的结果,fn表示当前要执行的函数,然后返回函数执行的结果,最终得到转换后的数据。

需要注意的是,在请求数据和响应数据的转换过程中,transformRequesttransformResponse两个配置项都会被调用,它们的函数数组会被传入到transformData函数中的fns参数中。

Released under the MIT License.