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 相关文章推荐
Jquery post传递数组方法实现思路及代码
Apr 28 Javascript
兼容IE和FF的图片上传前预览js代码
May 28 Javascript
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
javascript面向对象之对象的深入理解
Jan 13 Javascript
使用Chrome浏览器调试AngularJS应用的方法
Jun 18 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
跟我学习javascript解决异步编程异常方案
Nov 23 Javascript
纯js实现画一棵树的示例
Sep 05 Javascript
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
Nov 15 Javascript
基于vue和bootstrap实现简单留言板功能
May 30 Javascript
解决vue+elementui项目打包后样式变化问题
Aug 03 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读取csc文件并输出
2015/05/21 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
javascript截取字符串小结
2015/04/28 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
Vue实现验证码功能
2019/12/03 Javascript
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
Python input函数使用实例解析
2019/11/22 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
生物制药毕业生自荐信
2013/10/16 职场文书
结婚邀请函范文
2014/01/14 职场文书
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
卫生巾广告词
2014/03/18 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
机关工会工作总结2015
2015/05/26 职场文书
永远是春天观后感
2015/06/12 职场文书
详解Python描述符的工作原理
2021/06/11 Python
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS