zoukankan      html  css  js  c++  java
  • promise 封装 axios

    /*axios({
      method:"get",
      url:"./data.json",
      data:{
        id:10
      }
    }).then((res)=>{
      console.log(res)
    },(e)=>{
      console.log(e);
    })*/

    function axios(options) {
      let promise = new Promise((resolve, reject) => {  
        var xhr = new XMLHttpRequest();
        var data = "";
        //数据处理

        for (var key in options.data) {
        data += "&" + key + "=" + options.data[key]
        }

        if (options.method == "get") {

          let url = options.url + "?" + data.slice(1);
          xhr.open(options.method, url);
          xhr.send();
        } else if (options.method == "post") {

          xhr.open(options.method, options.url);
          xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
          xhr.send(data);
        }


        xhr.onreadystatechange = function () {
          let timer = null;
          let timeout = options.timeout?options.timeout:5000
          if(xhr.readyState == 4 && xhr.status == 200){
            let res = JSON.parse(xhr.responseText);
            clearTimeout(timer);
            resolve(res);
          }

         timer = setTimeout(()=>{
           clearTimeout(timer);
              reject(xhr.status);
            },timeout)

        }
      })
      return promise;
    }

  • 相关阅读:
    预防新型冠状病毒科普宣传网站
    四则运算
    结对审查
    最大子段和
    单元自动测试Junit
    浅谈过去,畅想未来
    第一次的结对编程
    代码审查
    单元测试
    junit4单元测试
  • 原文地址:https://www.cnblogs.com/wangqi2019/p/10543395.html
Copyright © 2011-2022 走看看