2017-05-18 7 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;

関連する問題