深入理解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获取onclick、onchange等事件值的代码
Jul 22 Javascript
浅析Javascript使用include/require
Nov 13 Javascript
Eclipse配置Javascript开发环境图文教程
Jan 29 Javascript
AngularJS入门教程之AngularJS指令
Apr 18 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
Jul 06 Javascript
纯css下拉菜单 无需js
Aug 15 Javascript
微信小程序模板之分页滑动栏
Feb 10 Javascript
vue中使用refs定位dom出现undefined的解决方法
Dec 21 Javascript
Cocos2d实现刮刮卡效果
Dec 20 Javascript
JS中的一些常用的函数式编程术语
Jun 15 Javascript
node 解析图片二维码的内容代码实例
Sep 11 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 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
Yii多表联合查询操作详解
2016/06/02 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
js实现指定时间倒计时效果
2019/08/26 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
JavaScript实现前端倒计时效果
2021/02/09 Javascript
Python实现截屏的函数
2015/07/25 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
python 构造三维全零数组的方法
2018/11/12 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
医学专业个人求职自荐信格式
2013/09/23 职场文书
开朗女孩的自我评价
2014/02/10 职场文书
食品安全承诺书范文
2014/08/29 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
护士2015年终工作总结
2015/04/29 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
MySQL 开窗函数
2022/02/15 MySQL