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 相关文章推荐
父窗口获取弹出子窗口文本框的值
Jun 27 Javascript
JQuery处理json与ajax返回JSON实例代码
Jan 03 Javascript
jquery 插件实现多行文本框[textarea]自动高度
Mar 04 Javascript
javascript实现鼠标拖动改变层大小的方法
Apr 30 Javascript
jQuery实现图片局部放大镜效果
Mar 17 Javascript
AngularJS内建服务$location及其功能详解
Jul 01 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
Dec 30 Javascript
Angular在一个页面中使用两个ng-app的方法
Feb 20 Javascript
node.js利用redis数据库缓存数据的方法
Mar 01 Javascript
JS实现导航栏楼层特效
Jan 01 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 Javascript
5个实用的JavaScript新特性
Jun 16 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+DBM的同学录程序(5)
2006/10/09 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
javascript 简练的几个函数
2009/08/29 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
js使用心得分享
2015/01/13 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
python文件操作相关知识点总结整理
2016/02/22 Python
Python文件读写常见用法总结
2019/02/22 Python
Python实现最大子序和的方法示例
2019/07/05 Python
利用python开发app实战的方法
2019/07/09 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
Python实现粒子群算法的示例
2021/02/14 Python
优秀信贷员先进事迹
2014/01/31 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
市场部岗位职责
2015/02/12 职场文书
小学见习报告
2015/06/23 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python