1. 程式人生 > 其它 >Es6- 使用promise的方法封裝自己的ajax

Es6- 使用promise的方法封裝自己的ajax

promise封裝自己的ajax:

  const getJSON = function(url){

    return new promise((resolved,rejected)=>{

      const xhrs = new XMLHttpRequest();

      xhrs.open('GET',url);

      xhrs.onreadystatechange = handler;

      xhrs.responseType = 'json';

      xhrs.setRequestHeader('Accept','application/json');

      xhrs.send();//get請求資料是放在url中,如果是post,此處需要新增對應的資料

      function handler(){

        if(this.readyState ===4){

          if(this.status ===200){      

            resolved(this.response) //返回的根據自己的情況進行展示

          }else{

            rejected(this,error)//返回的根據自己的情況進行展示

          }

        }

      }

    })

  }

  getJSON('XXXXXXXXXXXXXXXXXX').then((res)=>{

    console.log(res)

  },(error)=>{

     console.log(error);

  })

還有一種寫法是

  getJSON('XXXXXXXXXXXXXXXXXX').then((res)=>{

    console.log(res)

  }).catch(err =>{

    console.log(err);

  })