Promise写一个ajax,promise如何封装ajax?promise封装ajax的实现方法

本篇文章给大家带来的内容是关于promise如何封装ajax?promise封装ajax的实现方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

首先贴代码

var ajaxOptions = {

url: 'url',

method: 'GET',

async: true,

data: null,

dataType: 'text',

}

function ajax(protoOptions) {

var options = {};

for(var i in ajaxOptions){

options[i] = protoOptions[i] || ajaxOptions[i];

}

return new Promise(function(resolve, reject){

var xhr = new XMLHttpRequest();

xhr.open(options.method, options.url, options.async);

xhr.onreadystatechange = function() {

if (this.readyState === 4 && this.status === 200) {

resolve(this.responseText, this);

} else {

var resJson = {

code: this.status,

response: this.response

}

reject(resJson, this)

}

}

xhr.send()

})

}

注释:

1,open(method, url, async)

method: GET和POST;

url: 发送到服务端的url;

async: 异步true,同步false;

2,onreadystatechange

每当readyState的值变化,onreadystatechange函数自动执行

3,readyState 服务器响应的状态信息0: 请求未初始化

1: 服务器连接已建立

2: 请求已接收

3: 请求处理中

4: 请求已完成,且响应已就绪

当readyState的值为4,status状态为200时表示相应已就绪,可以执行成功调用的方法,反之调用失败调用的方法

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值