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 相关文章推荐
让插入到 innerHTML 中的 script 跑起来的实现代码
Jul 01 Javascript
jQuery的cookie插件实现保存用户登陆信息
Apr 15 Javascript
js函数定时器实现定时读取系统实时连接数
Apr 30 Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
Nov 24 Javascript
基于jQuery实现响应式圆形图片轮播特效
Nov 25 Javascript
javascript和jquery实现用户登录验证
May 04 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
Jun 12 Javascript
利用D3.js实现最简单的柱状图示例代码
Dec 09 Javascript
前端js弹出框组件使用方法
Aug 24 Javascript
纯JS实现只能输入数字的简单代码
Jun 21 Javascript
js实现简单点赞操作
Mar 17 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
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
PHP应用JSON技巧讲解
2013/02/03 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
php防止sql注入的方法详解
2017/02/20 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
jcrop基本参数一览
2013/07/16 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
js重写方法的简单实现
2016/07/10 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
nohup的用法
2014/08/10 面试题
行政总监岗位职责
2013/12/05 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
教师批评与自我批评
2014/10/15 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
python微信智能AI机器人实现多种支付方式
2022/04/12 Python