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,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
Apr 15 Javascript
Javascript的各种节点操作实例演示代码
Jun 27 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
Apr 24 Javascript
JS的事件绑定深入认识
Jun 26 Javascript
AngularJS初始化过程分析(引导程序)
Dec 06 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
Dec 17 Javascript
javascript的switch用法注意事项分析
Feb 02 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
AngularJS中的过滤器filter用法完全解析
Apr 22 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
手机注册发送验证码倒计时的简单实例
Nov 15 Javascript
实例讲解React 组件
Jul 07 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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
咖啡历史、消费和行业趋势
2021/03/03 咖啡文化
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
php 类自动载入的方法
2015/06/03 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
PHP7 新增常量
2021/03/09 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
Vue动态生成表格的行和列
2019/07/18 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
Python中的字符串查找操作方法总结
2016/06/27 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
亚洲领先的旅游体验市场:Voyagin
2019/11/23 全球购物
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
设计总监岗位职责
2013/12/07 职场文书
网站开发实习生的自我评价
2013/12/11 职场文书
求职毕业生自荐书
2014/02/08 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
初中差生评语
2014/12/29 职场文书
介绍长城的导游词
2015/01/30 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
商业计划书之服装
2019/09/09 职场文书
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript