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 相关文章推荐
jQueryUI的Dialog的简单封装
Jun 07 Javascript
javascript测试题练习代码
Oct 10 Javascript
JavaScript实现twitter puddles算法实例
Dec 06 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
Sep 18 Javascript
jQuery EasyUI Pagination实现分页的常用方法
May 21 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
JS与jQuery实现隔行变色的方法
Sep 09 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
JS抛物线动画实例制作
Feb 24 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
Nginx设置为Node.js的前端服务器方法总结
Mar 27 Javascript
javascript实现的时间格式加8小时功能示例
Jun 13 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的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
YII实现分页的方法
2014/07/09 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
Dom与浏览器兼容性说明
2010/10/25 Javascript
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
Javascript实现字数统计
2015/07/03 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
JS中call和apply函数用法实例分析
2018/06/20 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
小程序接口的promise化的实现方法
2019/12/11 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
解决python写的windows服务不能启动的问题
2014/04/15 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
日本航空官方网站:JAL
2019/06/19 全球购物
员工工作表扬信范文
2014/01/13 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
关于保护环境的建议书
2014/08/26 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书