当前位置: 首页 > news >正文

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求

promise就有reject和resolve了,就不必写成功和失败的回调函数了

   const BASEURL = './手写ajax/test.json'function promiseAjax() {return new Promise((resolve, reject) => {const xhr = new XMLHttpRequest();xhr.open("get", BASEURL, true);// 设置请求头xhr.setRequestHeader("accept", "application/json");// 设置超时时间\const timeout = 1000;xhr.timeout = timeout;// 监听状态:箭头函数没有thisxhr.onreadystatechange =  () =>  {// 监听ajaxif (xhr.readyState !== 4) {return;}// 监听httpif ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {resolve(xhr.response)} else {reject(new Error(xhr.statusText))}}// 处理错误情况xhr.onerror = () =>  {reject(new Error(xhr.statusText))}xhr.ontimeout =  () =>  {reject(new Error(xhr.statusText))}// 设置格式\xhr.responseType = "json"// 发送请求xhr.send(null);})}// 测试调用promiseAjax().then(res => console.log("成功:", res),err => console.error("失败:", err));

相关文章:

  • AI 智能体专栏简介
  • 足球判罚的AI解法:多阶段标定流程+57几何关键点,助力公平判罚
  • 群晖NAS 系统是否支持快照?是否可以进行异地容灾?
  • 门静脉高压——病因
  • Linux 下部署安装docker
  • Python进程详解
  • Nginx server_name 配置说明
  • Device Mapper 机制
  • 统计学(第8版)——统计抽样学习笔记(考试用)
  • 如何用AI写论文、做科研,AMiner沉思一站式辅助
  • Python 中的加密库:守护数据安全的利刃
  • @Transactional 什么情况下会失效
  • 用HTML5+CSS3+JavaScript实现找不同游戏
  • RocketMQ 重试机制详解及最佳实践
  • 【DAY44】预训练模型
  • 网格三面角,散射过程推导
  • Origin图像数字化工具——如何复制其他人的图表作为对比数据
  • nacos开启鉴权密码登录
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
  • 回溯算法学习
  • 河南新闻头条最新事件/seo排名软件
  • 阅文集团旗下哪个网站做的最好/企业网站推广的方法
  • 网页制作有什么软件/东莞seo建站排名
  • 今日兰州疫情最新消息/济宁seo推广
  • 百度小程序模板/珠海seo推广
  • 聊城做网站的公司策划/推广网址