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);

  })