2017-05-18 4 views
0

안녕하세요. 모든 API 요청을 처리하는 단일 JavaScript 파일을 작성하려고합니다. 그런 다음이 파일을 사용하여 모든 XHR 요청을하십시오. XHR이 비동기 일 때 함수는 onreadystatechange가 실행되기 전에 반환됩니다. 나는 무언가를 아래에 시도했다 그러나 일하는 것은 누군가 이것을 달성하는 방법 저에게 말할 수 있는가?순수 XHR을 사용하여 각도와 같은 API 팩토리 만들기

var apiFactory={}; 
 
var Req = new XMLHttpRequest(); 
 
apiFactory.sendRequest=function(URL,type,params) { 
 
    Req.open("GET", "<get url>", true); 
 
    
 
    Req.send(); 
 
    return Req.onreadystatechange = function() { 
 
     if (Req.readyState == 4 && Req.status == 200) { 
 

 
      console.log(JSON.parse(Req.responseText)); 
 
      return JSON.parse(Req.responseText); 
 
     } 
 
    }; 
 

 
}; 
 

 
module.exports=apiFactory;

당신은 ES6 약속 사용할 수 있습니다

답변

0

:

var apiFactory={}; 
 

 
apiFactory.sendRequest=function(URL,type,params) { 
 
    return new Promise(function(resolve, reject) { 
 
    var Req = new XMLHttpRequest(); 
 
    Req.open("GET", URL, true); 
 
    
 
    Req.send(); 
 
    return Req.onreadystatechange = function() { 
 
     if (Req.readyState == 4 && Req.status == 200) { 
 

 
      console.log(JSON.parse(Req.responseText)); 
 
      resolve(JSON.parse(Req.responseText)); 
 
     } 
 
    }; 
 

 
    }); 
 
    
 

 
}; 
 

 
apiFactory.sendRequest('https://ghibliapi.herokuapp.com/films/58611129-2dbc-4a81-a72f-77ddfc1b1b49').then((res)=>{ 
 
    console.log('result:',res) 
 
}) 
 

 

 
//module.exports=apiFactory;