promise处理多个相互依赖的异步请求(实例讲解)


Posted in Javascript onAugust 03, 2017

在项目中,经常会遇到多个相互依赖的异步请求。如有a,b,c三个ajax请求,b需要依赖a返回的数据,c又需要a和b请求返回的数据。如果采用请求嵌套请求的方式自然是不可取的。导致代码难以维护,如何请求很多。会出现很多问题。

Promise就是解决多个异步请求的问题。 Promise是ES6提供的一个对象,用来传递异步操作的消息。

Promise有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和 Rejected(已失败)。

直接上代码。有a,b请求,b依赖a的请求数据。如下:

function a(){
      return new Promise(function(res,rej){
        $.ajax({
          url:"a",
          type: "GET",
          async:true,
          dataType:"json",
          success:function(data){
            console.log(data,"a");
            res(data);
          }
        })
      });
    }
    function b(data){
      console.log(data,"data");
      return new Promise(function(res,rej){
        $.ajax({
            url:"b",
            type: "POST",
            async:true,
            data:JSON.stringify(data),
            dataType:"json",
            success:function(data){
              console.log(data,"b");
              res();
            }
          })
      });
    }
    $("#btn").click(function(){
      a().then(function (data){
        b(data);
      }).then(function(){
      })
    })

接口url在网上找了一个,可以看运行结果:

promise处理多个相互依赖的异步请求(实例讲解)

以上这篇promise处理多个相互依赖的异步请求(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
浏览器无法运行JAVA脚本的解决方法
Jan 09 Javascript
JS控制图片等比例缩放的示例代码
Dec 24 Javascript
js实现select组件的选择输入过滤代码
Oct 14 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
Aug 27 Javascript
JS 实现Base64编码与解码实例详解
Nov 07 Javascript
Bootstrap学习笔记之环境配置(1)
Dec 07 Javascript
bootstrap中的 form表单属性role="form"的作用详解
Jan 20 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
Aug 22 Javascript
jsonp实现百度下拉框功能的方法分析
May 10 Javascript
vue路由守卫,限制前端页面访问权限的例子
Nov 11 Javascript
vue实现简单学生信息管理
May 30 Javascript
javascript实现支付宝滑块验证码效果
Jul 24 Javascript
老生常谈js数据类型
Aug 03 #Javascript
详解JavaScript按概率随机生成事件
Aug 02 #Javascript
angular中的cookie读写方法
Aug 02 #Javascript
webpack进阶——缓存与独立打包的用法
Aug 02 #Javascript
使用vue构建移动应用实战代码
Aug 02 #Javascript
React Native之ListView实现九宫格效果的示例
Aug 02 #Javascript
jQuery初级教程之网站品牌列表效果
Aug 02 #jQuery
You might like
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
理解Javascript_09_Function与Object
2010/10/16 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
初识JQuery 实例一(first)
2011/03/16 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
Python入门篇之编程习惯与特点
2014/10/17 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
对python中return和print的一些理解
2017/08/18 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
python issubclass 和 isinstance函数
2019/07/25 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
python实现广度优先搜索过程解析
2019/10/19 Python
Python 必须了解的5种高级特征
2020/09/10 Python
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
中班上学期幼儿评语
2014/04/30 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
华山导游词
2015/02/03 职场文书
运动会表扬稿范文
2015/05/05 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL