深入理解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 相关文章推荐
JavaScript Date对象使用总结
May 14 Javascript
基于JQuery的Pager分页器实现代码
Jul 17 Javascript
判断ie的两种简单方法
Aug 12 Javascript
javascript打印输出json实例
Nov 11 Javascript
javascript 表格内容排序 简单操作示例代码
Jan 03 Javascript
实例分析javascript中的call()和apply()方法
Nov 28 Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 Javascript
微信小程序 action-sheet底部菜单详解
Oct 27 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
Jan 08 Javascript
jquery easyui DataGrid简单示例
Jan 23 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
Oct 30 Javascript
微信小程序开发之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
SONY SRF-40W电路分析
2021/03/02 无线电
PHP脚本的10个技巧(8)
2006/10/09 PHP
jQuery select的操作实现代码
2009/05/06 Javascript
JavaScript类库D
2010/10/24 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
JavaScript中arguments的使用方法详解
2020/12/20 Javascript
python解析xml文件操作实例
2014/10/05 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
python和JavaScript哪个容易上手
2020/06/23 Python
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
结婚喜宴家长答谢词
2014/01/15 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
售后服务承诺书
2014/03/26 职场文书
工程材料采购方案
2014/05/18 职场文书
开工仪式策划方案
2014/05/23 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
民事上诉状范文
2015/05/22 职场文书
酒桌上的开场白
2015/06/01 职场文书
新郎结婚感言
2015/07/31 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
python基础之文件处理知识总结
2021/05/23 Python
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android