用promise封装ajax

简介: 用promise封装ajax

https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

var onSuccess = function(result){
   }; //成功的回调
var onFail = function(error){
   }; //失败的回调
var req = new XMLHttpRequest();
req.open("POST", "www.baidu.com", true); // true  是否异步
req.onload = function(){
   
  if(req.readyState === 4 && req.status === 200){
   
    onSuccess(req.response);
  } else {
   
    onFail(req.statusText);
  }
}
req.onerror = function(){
   
  onFail(Error("网络异常"));
}
AI 代码解读
function ajaxPrpmise () {
   
   let promise = new Promise( (resolve,reject) => {
   
              let xhr =  new XMLHttpRequest();
              xhr.open('get',''xx.gif',true)
              xhr.onreadystatechange = () =>{
    
                        if( xhr.readyState === 4 ){
   
                             if(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304 ){
   
                                 resolve( xhr.responseURL)
                             } else {
   
                                 reject( new Error(xhr.statusText))
                             }
                        }
              }

           xhr.send(null)
   } )
  return promise
}
AI 代码解读

参考: https://www.bilibili.com/video/BV1jv411P7Hp/?spm_id_from=333.788

const ajax = url => {
   
    return new Promise((resolve, reject) => {
   
        let req = new XMLHttpRequest();
        req.open("POST", url, true);
        req.onload = () => {
   
          if(req.readyState === 4 && req.status === 200){
   
            resolve(req.response);
          } else {
   
            reject(req.statusText);
          }
        }
        req.onerror = () => {
   
          reject(Error("网络异常"));
        }
    })
}
AI 代码解读
目录
打赏
0
0
0
0
3
分享
相关文章
AJax(XHR+Get和Post+AJax的封装)
AJax(XHR+Get和Post+AJax的封装)
78 15
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
PROMISE解决AJAX中的串行和并行
PROMISE解决AJAX中的串行和并行
82 0
Promise--代码实现-- ajax 传统方式和 promise 方式和 promise 代码优化/重排 方式的对比--综合代码示例
Promise--代码实现-- ajax 传统方式和 promise 方式和 promise 代码优化/重排 方式的对比--综合代码示例
128 0
jQuery实现Ajax
jQuery实现Ajax
N..
118 1
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
321 0
杨校老师课堂之基于Servlet整合JQuery中的Ajax进行表单提交[基于IDEA]
杨校老师课堂之基于Servlet整合JQuery中的Ajax进行表单提交[基于IDEA]
106 0
杨校老师课堂之基于Servlet整合JQuery中的Ajax进行表单提交[基于IDEA]
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问