很多时候,我们需要使用ajax请求获取数据A.并使用A中的数据A.a来进行下一步的Ajax操作…
下面使用promise.prototype.then的链式引用来实现

// 首先封装一个getJSON的方法.
var getJSON = function (url) {var promise = new Promise(function (resolve, reject) {var client = new XMLHttpRequest();client.open("GET", url);client.onreadystatechange = handler;client.responseType = "json";client.setRequestHeader ("Accept", "application/json");client.send();function handler() {if (this.readyState !== 4) {return;}if (this.status === 200) {resolve(this.response);} else {reject(new Error(this.statuText));}};});return promise;
}// 上面函数调用.getJSON(url)即可, 使用.then可以改变Resolved状态的回调函数
// 链式调用如下:
getJSON("post/1.json").then(function(post) {return getJSON(post.commentURL);
}).then(function funcA(comments) {console.log("Resolved: ", comments);
},  function funcB(err) {console.log("Rejected: ", err);
});// 注:首先,调用getJSON异步读取post/1.json路径下的数据
// 读取结果作为参数放在post里面,然后再调用getJSON函数,参数为post.commentURL,读取post.commentURL路径的数据
// 若读取成功执行,函数funcA,否则执行函数funcB....// 下面尝试使用箭头函数重写链式调用,,,
getJSON("post/1.json").then(post => getJSON(post.commentURL)
).then(comments => console.log("Resolved: ", comments),err => console.log("Rejected: ", err)
);// 简洁明了,这个接口还不错...

参考《ES6标准入门》(第3版) P276、P279

es6 --- promise.prototype.then的链式引用相关推荐

  1. es6 Promise.prototype.then()方法

    Promise.prototype.then()方法 Promise 实例具有then方法,也就是说,then方法是定义在原型对象Promise.prototype上的.它的作用是为 Promise ...

  2. ES6 Promise对象then方法链式调用

    说明请看注释 /*** then()方法会返回一个新Promise对象, * 所以then后面可以继续跟一个then方法进行链式调用, * 如果then方法的回调函数有返回数据,* 那么这个数据会作为 ...

  3. es6 Promise.prototype.catch()方法

    Promise.prototype.catch()方法 Promise.prototype.catch方法是.then(null, rejection)的别名,用于指定发生错误时的回调函数. getJ ...

  4. ES6 Promise - 让我们解开的面纱(遵循Promise/A+规范)

    Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息.ECMAscript 6 原生提供了 Promise 对象.而且ES7中的async/await也是Promise基础实现的.Pr ...

  5. 原型链 —— 以隐式引用作为存储方式的单向链表

    原型链的表述 ​ 一个以隐式引用作为存储方式,以点操作符和属性访问语句作为语法糖的单向链表 原型链作为一个单向链表并没有完全发挥出单向链表的特性,换句话说JS中的原型链是只用部分能力的单向链表 原型对 ...

  6. 十二、Promise的学习笔记(Promise的基本使用、链式编程、all())

    一.认识Promise ES6中一个非常重要和好用的特性就是Promise 但是初次接触Promise会一脸懵逼,这TM是什么东西? 看看官方或者一些文章对它的介绍和用法,也是一头雾水. Promis ...

  7. 从 PHP、Promise、Android 和 iOS 代码看如何链式编程

    链式编程或者链式写法,是将多个方法 (函数) 通过点号 (.) 或者 (->)等符号链接在一起成为一句代码,这样不仅可以增强代码的可读性,而且每次链接,都是对对象的属性和状态进行一次操作和变化. ...

  8. 实现同步请求_图解 Promise 实现原理(二)—— Promise 链式调用

    摘要 很多同学在学习 Promise 时,知其然却不知其所以然,对其中的用法理解不了.本系列文章由浅入深逐步实现 Promise,并结合流程图.实例以及动画进行演示,达到深刻理解 Promise 用法 ...

  9. promise的链式调用

    //new一个promise对象并在里面执行第一个异步方法 var promise = new Promise(function(resolve,reject){axios({method: 'pos ...

最新文章

  1. 去哪儿网消息队列设计与实现
  2. Pentaho Data Integration 界面开发
  3. mybatis一对多关联 创建_MyBatis多对多关联查询(级联查询)
  4. 基于Quartus II软件FPGA与PC之间的串行通信系统开发(9000+字)
  5. 深入redis内部--初始化服务器
  6. 安全行业中的event与incident区别
  7. 【yii2】 yii框架如果控制器和方法都是多个单词组成应该怎样写请求链接
  8. [20180428]DNS与ORA-12154错误.txt
  9. spring 框架(一)
  10. LeetCode 748. 最短完整词
  11. 美工设计灵感|常见的电商页面如何设计?
  12. 动态创建MySQL Group Replication的节点(r11笔记第84天)
  13. VS2010 TFS 如何把一个项目添加到源代码管理中及其他管理
  14. python脚本报错:OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
  15. c语言的指针思维导图,指针基础知识(含思维导图)
  16. (XWZ)的Python学习笔记Ⅱ------面向对象编程
  17. 东京喰种语录(节选)
  18. 移动硬盘文件系统错误16389
  19. 电脑键盘equals在哪个位置_常用标点符号和电脑键盘符号英语表示 -
  20. VScode github配置及github代码管理

热门文章

  1. layui 金额数据千分位_IG神秘打野韩服数据,盲僧数据或暗示英雄池问题
  2. python 动态规划_DP动态规划(Python实现)
  3. gorm preload 搜索_文件太多忘记了文件放在什么地方?那你可以试试这款文件搜索工具...
  4. 通俗讲解:图像傅里叶变换
  5. Unity中date相关问题
  6. 【TensorFlow-windows】keras接口——ImageDataGenerator裁剪
  7. 【TensorFlow-windows】MobileNet理论概览与实现
  8. Tensorflow一些常用基本概念与函数
  9. 一步一步教你实现iOS音频频谱动画(一)
  10. Plupload文件上传组件使用API