function ajax({type,url,data,dataType}){
return new Promise(function(resolve){
var xhr=new XMLHttpRequest();
if(type.toLowerCase()=="get"&&data!==undefined)
url+="?"+data;
xhr.open(type,url,true);
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
if(dataType.toLowerCase()!="json")
resolve(xhr.responseText);//将结果作为参数传递出去
else
resolve(JSON.parse(xhr.responseText));
}
}
if(type.toLowerCase()=="post")
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(type.toLowerCase()=="post"?data:null);
})
}
promise
resolve(结果) 这个函数会将结果作为参数传递出去
.then:ajax得到数据后再执行其他数据
因为返回的是一个promise对象,所以调用promise的.then方法。
本文介绍了一种使用Promise封装AJAX请求的方法,该方法能够简化异步操作,并且支持GET和POST请求。通过设置不同的dataType参数,可以处理JSON或字符串响应。
547

被折叠的 条评论
为什么被折叠?



