Promise (02) - promise 를 어떻게 사용 하여 ajax, 패키지 axios 를 실현 하 는 지 깊이 이해 합 니 다.

12953 단어 ES6/ES7/8/9...
promise 의 개념 과 방법 을 소개 합 니 다. promise 를 어떻게 사용 하여 ajax 를 실현 하 는 지 소개 합 니 다.
  • 원생 js 로 ajax 실현
  • 
    getData(method, url, successFun, failFun){
      var xmlHttp = new XMLHttpRequest();
      xmlHttp.open(method, url);
      xmlHttp.send();
      xmlHttp.onload = function () {
        if (this.status == 200 ) {
          successFun(this.response);
        } else {
          failFun(this.statusText);
        }
      };
      xmlHttp.onerror = function () {
        failFun(this.statusText);
      };
    
  • Promise 대상 으로 ajax
  • 실현
    const getJSON = function(url) {
      const promise = new Promise(function(resolve, reject){
        const handler = function() {
          if (this.readyState !== 4) {
            return;
          }
          if (this.status === 200) {
            resolve(this.response);
          } else {
            reject(new Error(this.statusText));
          }
        };
        const client = new XMLHttpRequest();
        client.open("GET", url);
        client.onreadystatechange = handler;
        client.responseType = "json";
        client.setRequestHeader("Accept", "application/json");
        client.send();
      });
      return promise;
    };
    //  
    getJSON("/posts.json").then(function(json) {
      console.log('Contents: ' + json);
    }, function(error) {
      console.error('   ', error);
    });
    
  • Promise 대상 으로 axios
  • function axios(url,params) ={
    	return new Promise((resovle,reject)=>{
    		axios.get(url,params).then(res=>{
    			resovle(res)
    		}).catch(err=>{
    			reject(err)
    		})
    	})
    } 
    
    //   
    axios("/posts.json").then(function(json) {
      console.log('Contents: ' + json);
    }).catch(function(error) {
      console.error('   ', error);
    });
    

    좋은 웹페이지 즐겨찾기