promisw如何封装ajax,用Promise封装简单的ajax请求!

本文介绍了如何利用Promise来封装GET和POST两种类型的AJAX请求,以解决回调地狱问题。通过创建新的Promise实例,分别处理GET和POST请求的生命周期,当状态变为4且状态码为200时解析响应,否则拒绝请求。示例代码展示了如何发起请求并处理成功与失败的情况。
摘要由CSDN通过智能技术生成

let geturl="http://xxx";

let posturl="http://xx";

1.get

function getRequest(Url){

let p=new Promise((resolve,reject)=>{

let xhr=new XMLHttpRequest();

xhr.open('GET',Url,true);

xhr.onreadystatechange=function(){

if(this.readyState===4){

if(this.status===200){

resolve(this.responseText,this);

}else{

reject("Request Fail");

}

}

}

xhr.send();

});

return p;

};

getRequest(geturl).then(data=>{

console.log("success:"+data);

}).catch((data)=>{

console.log("fail:"+data);

});

2.post

function postRequest(Posturl,data){

let p=new Promise((resolve,reject)=>{

let xhr=new XMLHttpRequest();

xhr.open("POST",Posturl,true);

xhr.onreadystatechange=function(){

if(this.readyState===4){

if(this.ststus=200){

resolve(this.responseText);

}else{

reject("Request Fail");

}

}

}

xhr.send(JSON.stringify(data));

});

return p;

}

postRequest(posturl).then(data=>{

console.log("success:"+data);

}).catch(data=>{

console.log("fail:"+data);

})

注:用Promise封装ajax要求对Promise有简单的了解,Promise是一个构造函数,它的参数是带有resolve和reject的函数。Promise的出现解决了使用异步回调地狱的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值