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 相关文章推荐
JavaScript 对象成员的可见性说明
Oct 16 Javascript
JQuery 应用 JQuery.groupTable.js
Dec 15 Javascript
js String对象中常用方法小结(字符串操作)
Jan 27 Javascript
jquery 操作日期、星期、元素的追加的实现代码
Feb 07 Javascript
jquery控制表单输入框显示默认值的方法
May 22 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
Mar 28 Javascript
Bootstrap多级菜单的实现代码
May 23 Javascript
微信小程序使用swiper组件实现层叠轮播图
Nov 04 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
May 14 Javascript
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
老生常谈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+MSSQL分页的例子
2006/10/09 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
php原生数据库分页的代码实例
2019/02/18 PHP
PHP实现简易图形计算器
2020/08/28 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
javascript中的有名函数和无名函数
2007/10/17 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
javascript实用方法总结
2015/02/06 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
python队列queue模块详解
2018/04/27 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
Python3 读取Word文件方式
2020/02/13 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
秋季运动会通讯稿
2014/01/24 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
环卫处个人工作总结
2015/03/04 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书