深入理解ES6 Promise 扩展always方法


Posted in Javascript onSeptember 26, 2017

ES6添加了Promise对象,成功时在then中处理,失败则在catch中处理,但有时候,我们需要在无论成功或失败时都要做一些事,比如隐藏loading, 记录日志等等,下面我们以浏览器端ajax请求为例,我们使用axios(它是基于Promise的):

axios.get("/").then(()=>{
 //处理逻辑
 ...
 console.log("请求结束")
 hideLoading();
}).catch(()=>{
 console.log("请求结束")
 hideLoading();
})

这样的代码, 很冗余。每到这个时候都有点怀念jQuery:

$.get("/").done(()=>{
 //处理逻辑
}).always(()=>{
 console.log("请求结束")
 hideLoading();
})

es6-promise-always正是对ES6的功能做了一个扩充,使其支持always,并同时支持node和browser.

使用

1.安装

npm install es6-promise-always --save

2.引入使用

require("es6-promise-always")
axios.get("/").then(()=>{
 //处理逻辑
}).always(()=>{
 console.log("请求结束")
 hideLoading();
})

always(data, error)

  • data: resolve的数据。
  • error: reject的数据。

Tips

不要担心这个会让你的程序变胖!es6-promise-always非常小。刚开始实现时always时,走错了方向,辛好迷途知返。github地址:https://github.com/wendux/es6-promise-always

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让innerHTML的脚本也可以运行起来
Jul 01 Javascript
jQuery 跨域访问问题解决方法
Dec 02 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
Feb 07 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
Jan 23 Javascript
单击和双击事件的冲突处理示例代码
Apr 03 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
Oct 17 Javascript
JavaScript版的TwoQueues缓存模型
Dec 29 Javascript
JavaScript实现图片懒加载(Lazyload)
Nov 28 Javascript
vue mint-ui tabbar变组件使用
May 04 Javascript
微信小程序实现展示评分结果功能
Feb 15 Javascript
JavaScript中常用的简洁高级技巧总结
Mar 10 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
微信小程序开发之IOS和Android兼容的问题
Sep 26 #Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 #Javascript
微信小程序url与token设置详解
Sep 26 #Javascript
微信小程序之滚动视图容器的实现方法
Sep 26 #Javascript
微信小程序开发之好友列表字母列表跳转对应位置
Sep 26 #Javascript
深入理解Vuex 模块化(module)
Sep 26 #Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
Sep 26 #Javascript
You might like
pdo中使用参数化查询sql
2011/08/11 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
Yii使用migrate命令执行sql语句的方法
2016/03/15 PHP
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
原生JS实现圆环拖拽效果
2017/04/07 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
python入门教程 python入门神图一张
2018/03/05 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
优秀学生干部个人事迹材料
2014/06/02 职场文书
如何写早恋检讨书
2014/09/10 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
承租经营合作者协议书
2014/10/01 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
2014年测量员工作总结
2014/12/12 职场文书
倡议书怎么写?
2019/04/11 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
总结Python使用过程中的bug
2021/06/18 Python
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫