promise简单封装ajax 完美嵌套多个ajax请求

转载请注明出处并留个言哈,分享快乐~!

request.js文件,注意网页头部script标签加载顺序

function myAjax(json, callback) {var p = new Promise(function (resolve, reject) {$.ajax({url: json.url,    //请求的url地址dataType: json.dataType,   //返回格式为jsonasync: json.isAsync,//请求是否异步,默认为异步,这也是ajax重要特性data: json.data,    //参数值type: json.method,   //请求方式success: function (response) {//请求成功时处理callback(response);resolve();},error: function (XMLHttpRequest, textStatus, errorThrown) {//请求出错处理if (XMLHttpRequest.status == "401") {window.parent.location = '/enterprise/enterprise_login.html';self.location = '/enterprise/enterprise_login.html';} else {alert(XMLHttpRequest.responseText);}reject();}});});return p;
}/*** 请求get方法* url* data 以对象的格式传入*/
function getRequest(url, data, callback) {return myAjax({url: url,method: 'GET',dataType: 'json',isAsync: true,data: data,header: {'Content-Type': 'application/json'}},callback)
}/*** 请求post方法封装* url* data 以对象的格式传入*/
function postRequest(url, data, callback) {return myAjax({url: url,method: 'POST',dataType: 'json',isAsync: true,data: data,header: {"content-type": "application/json"},},callback)
}

任意网页加载后直接复用代码调用,示例:

var indexData = postRequest("http://cms.hyphone.top/api/Cms/index",'',(res)=>{console.log("+++++++++++",res);
});

嵌套调用示例:

ajax('/prefix/entity1/action1',null, function(res){//第一个调用ajax应该做的事someData.attr1 = res.attr1;ajax('/api/action1', someData, function(res){//do something on response}
}).then(//第二个调用ajax应该做的事ajax('/api/action2', someData, function(res){//do something on response}
).then(//第三个调用ajax应该做的事initVue() ;
).then(//以此类推
)

今日分享:

明白的越早越好!

  1. 早买房子,越早越好
  2. 车子便宜的就行,能代步即可
  3. 一定要学会演讲
  4. 东西长期用药买好的
  5. 别与亲朋好友深度合作
  6. 树立终身学习的观念
  7. 坚持锻炼身体
  8. 习惯孤独,习惯一个人
  9. 一定要学创业,不要一直选打工
  10. 打工要干有提成的,别干固定工资的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 使用纯css来创建一个滑块

[css] 使用纯css来创建一个滑块 .checke{position: relative;-webkit-appearance: none;width:90px;height: 44px;line-height: 44px;background: #eee;border-radius: 30px;outline: none;}.checke:before{position: absolute;left: 0;content: ;width: 44px;height: 44px;bor…

纯静态网站模板封装header和footer

前后端分离的网站模板,如果不用任何渲染引擎,能否封装公共的header和footer(或其它html公共代码呢)? 答案是肯定的,因为jQuery有一个函数叫 load ,可以在浏览器绘制页面之前加载完整的 html 页…

SAP字体调节大小

登陆SAP 之后,菜单下面一行,最右边的那个彩色按钮(SAP GUI),点击“选项”-可视设计-字体设计-固定狂赌字体设计,点击:选择字体 即可。转载于:https://www.cnblogs.com/RogerLu/p/9612648.html

javascript中对一个对象数组按照对象某个属性进行排序

在javascript中,对象和数组是两种不同的类型,这和php中的数组概念不同。在javascript中,也有一些精妙的算法,用来对一些对象进行排序。我在面试迅雷的时候,也拿到一道题,当时做题的时候考虑到时间&#xff…

[css] 用css画一个五边形和一个六边形

[css] 用css画一个五边形和一个六边形 五边形:clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%); 六边形:clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); 七边形:clip-path: polygon(50% 0%…

[css] 你有没有使用过“形似猫头鹰”(例:`* + *{ ... }`) 的选择器?

[css] 你有没有使用过“形似猫头鹰”(例:* *{ ... }) 的选择器? 以前常用,比如li li {margin-top: 1rem; } 这样可以给除了第一个li以外的li指定样式,比如在两个li之间加上margin个人简介 我是歌谣&…

HTML5 Web 存储(localStorage和sessionStorage)

localStorage生命周期是永久,除非主动清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。 // 1、保存数据到本地// 第一个参数是保存的…

面向对象之反射、包装、(定制)

什么是反射? 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省), 这一概念的提出很快引发了计算机科学领域关于应用反射的研究。它首次被程序语言的设计领域所…

[css] 为什么说css中能用子代选择器的时候不要用后代选择器?

[css] 为什么说css中能用子代选择器的时候不要用后代选择器? 选择从右到左依次解析匹配,所以后代选择器会去找它的所有父级, 而子代选择器只会选择直接的父级;减少匹配次数,提高效率个人简介 我是歌谣,欢…

javascript基本函数

如何使用jquery刷新当前页面 下面介绍全页面刷新方法:有时候可能会用到 window.location.reload()刷新当前页面. parent.location.reload()刷新父亲对象(用于框架) opener.location.reload()刷新父窗口对象(用于单开窗口&…

[css] 如何给文字的color设置渐变

[css] 如何给文字的color设置渐变 .text {background: -webkit-linear-gradient(#eee, #333);-webkit-background-clip: text;-webkit-text-fill-color: transparent; }个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。…

微信小程序运行报错---invoke event

微信小程序页面跳转 //跳转到新的页面,新的页面带有返回按钮,不能跳转到tabBar页面,否则会报invoke event之类的错误 wx.navigateTo({url: }) //跳转到新的页面,不带返回按钮,但是不能太偶转到tabBar页面&#xff0…

js 静止f1到f12 和屏蔽鼠标右键

//静止键盘f1-f12 function testKeyDown(event) { if ((event.keyCode 112) || //屏蔽 F1 (event.keyCode 113) || //屏蔽 F2 (event.keyCode 114) || //屏蔽 F3 (event.keyCode 115) || //屏蔽 F4 //(event.keyCode 116) || //屏蔽 F5 (event.keyCode 117) || //屏蔽 F6…

[css] 如何在白天和黑夜自动切换页面的颜色?

[css] 如何在白天和黑夜自动切换页面的颜色? 媒体查询的内容都是设备的属性:宽度高度,旋转方向,打印样式,分辨率 所以用媒体查询的话,需要用户的设备拥有切换黑暗模式的功能 借助 js 切换页面颜色的话&…

py 的 第 30 天

首先学习了一下socket,这个经过周末作业总算是掌握精髓了,可能还没掌握只是以为掌握了? import socketserverclass MyServer(socketserver.BaseRequestHandler):def handle(self):passserver socketserver.ThreadingTCPServer((192.168.13.84,8001,),M…

Error: Cannot find module 'webpack-cli'--解决方案

npm install webpack-cli -g 全局安装解决 今日赠语: 哈佛大学研究心理学表示: 1、床乱糟糟的人,比穿整洁的人,创造力平均要高出50% 2、经常迟到的人,比不迟到的人,幽默感平均要高出70% 3、饭量大的人&…

[css] CSS中哪些属性会引起GPU渲染,会增加耗电吗?

[css] CSS中哪些属性会引起GPU渲染,会增加耗电吗? 肆无忌惮的开启GPU硬件加速,会导致大量消耗设备电量,降低电池寿命等问题。个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很…

[css] OOCSS有哪些好处?对应的库有哪些?

[css] OOCSS有哪些好处?对应的库有哪些? 有语义的类名,逻辑性强的层次关系 可重用,样式和结构的分离,容器和内容的分离 Kite个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但…

分享菜单效果

分享菜单效果&#xff1a; 1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>分享菜单</title>6 <style>7 #div1{width: 100px; height: …

vue中的js引入图片,必须require进来

vue怎样能把assets里面的图片拿出来&#xff1f; 1.在img标签里面直接写上路径&#xff1a; <img src"../assets/a1.png" class"" width"100%"/> 2.利用数组保存再循环输出&#xff1a; return {imgs: [{url: require(/assets/slide1.…