Javascript 使用纯XHR创建类似angular的API工厂

Javascript 使用纯XHR创建类似angular的API工厂,javascript,xmlhttprequest,Javascript,Xmlhttprequest,嗨,我正在尝试构建一个JavaScript文件,它为我处理所有API请求。然后使用此文件发出所有XHR请求。由于XHR是异步的,因此函数将在执行onreadystatechange之前返回。我尝试了下面的节目,但它不起作用。有人能告诉我如何做到这一点吗 var-apiFactory={}; var Req=新的XMLHttpRequest(); apiFactory.sendRequest=函数(URL、类型、参数){ 请求打开(“获取”、“为真”); 请求发送(); return Req.o

嗨,我正在尝试构建一个JavaScript文件,它为我处理所有API请求。然后使用此文件发出所有XHR请求。由于XHR是异步的,因此函数将在执行onreadystatechange之前返回。我尝试了下面的节目,但它不起作用。有人能告诉我如何做到这一点吗

var-apiFactory={};
var Req=新的XMLHttpRequest();
apiFactory.sendRequest=函数(URL、类型、参数){
请求打开(“获取”、“为真”);
请求发送();
return Req.onreadystatechange=函数(){
如果(Req.readyState==4&&Req.status==200){
log(JSON.parse(Req.responseText));
返回JSON.parse(Req.responseText);
}
};
};

模块出口=工厂您可以使用ES6承诺:

var-apiFactory={};
apiFactory.sendRequest=函数(URL、类型、参数){
返回新承诺(功能(解决、拒绝){
var Req=新的XMLHttpRequest();
请求打开(“获取”,URL,true);
请求发送();
return Req.onreadystatechange=函数(){
如果(Req.readyState==4&&Req.status==200){
log(JSON.parse(Req.responseText));
解析(JSON.parse(Req.responseText));
}
};
});
};
apiFactory.sendRequest('https://ghibliapi.herokuapp.com/films/58611129-2dbc-4a81-a72f-77ddfc1b1b49)。然后((res)=>{
console.log('result:',res)
})
//模块出口=工厂