Fetch请求的简易封装

Posted 前端薛小帅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fetch请求的简易封装相关的知识,希望对你有一定的参考价值。

Fetch请求是原生javascript基于Promise封装的请求方式,请注意低版本浏览器的兼容问题

// 获取接口返回数据
const fetchRequest = (option = ) => 
    const defaultOpt = 
      // 请求地址
      url: "",
      // 请求方式
      method: "get",
      // 请求头信息
      headers: ,
      // 其他参数
      other: ,
      // 接口参数
      data: 
    

    // 参数整合
    option = Object.assign(, defaultOpt, option);

    // fetch请求参数
    const fetchOption = 
      headers: option.headers,
      method: option.method,
      ...option.other
    ;

    // 处理请求方式
    if (option.method.toLowerCase() == "get") 
      // get方法将参数拼接在url后面
      const values = Object.values(option.data);
      const keys = Object.keys(option.data);
      const arr = [];
      for (let i = 0; i < values.length; i++) 
        arr.push(`$keys[i]=$values[i]`)
      
      const str = arr.join("&");
      option.url += `?$str`;
     else if (option.method.toLowerCase() == "post") 
      // post请求将参数转为JSON字符串传给body
      fetchOption.body = JSON.stringify(option.data);
    

    // 请求方法
    const fetchData = await fetch(option.url, fetchOption);
    const response = await fetchData.json();
    return response;
  

// 调用
const res = await fetchRequest(
    url:"https://xxx.com/api/xxx"
)

以上是关于Fetch请求的简易封装的主要内容,如果未能解决你的问题,请参考以下文章

基于 Fetch 的请求封装

React Native 网络请求封装:使用Promise封装fetch请求

fetch数据请求的封装

ES6 fetch方法封装

解析ajax服务请求——客户端的数据配置解析——服务端node的接收数据的解析——其他状态——fetch——ajax封装fetch

ReactNative——fetch封装新姿势