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 相关文章推荐
比较简单实用的使用正则三种版本的js去空格处理方法
Nov 18 Javascript
IE6下JS动态设置图片src地址问题
Jan 08 Javascript
jquery js 重置表单 reset()具体实现代码
Aug 05 Javascript
用json方式实现在 js 中建立一个map
May 02 Javascript
学习JavaScript设计模式之观察者模式
Apr 22 Javascript
Bootstrap每天必学之日期控制
Mar 07 Javascript
Web程序员必备的7个JavaScript函数
Jun 14 Javascript
微信小程序实现的动态设置导航栏标题功能示例
Jan 31 Javascript
JS隐藏号码中间4位代码实例
Apr 09 Javascript
JavaScript创建、读取和删除cookie
Sep 03 Javascript
JavaScript中this函数使用实例解析
Feb 21 Javascript
使用JS前端技术实现静态图片局部流动效果
Aug 05 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
树型结构列出指定目录里所有文件的PHP类
2006/10/09 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
UserData用法总结 lanyu出品
2010/07/01 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
Python中列表的一些基本操作知识汇总
2015/05/20 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
python实现给数组按片赋值的方法
2015/07/28 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
对python sklearn one-hot编码详解
2018/07/10 Python
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
电子商务专业实习生自我鉴定
2013/09/24 职场文书
高三历史教学反思
2014/01/09 职场文书
企业管理毕业生求职信范文
2014/03/07 职场文书
促销活动总结报告
2014/04/26 职场文书
五心教育心得体会
2014/09/04 职场文书
7个关于Python的经典基础案例
2021/11/07 Python
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL
python和anaconda的区别
2022/05/06 Python