深入理解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 相关文章推荐
jQuery timers计时器简单应用说明
Oct 28 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
Dec 25 Javascript
JavaScript实现的多种鼠标拖放效果
Nov 03 Javascript
轻松实现jquery手风琴效果
Jan 14 Javascript
jQuery实现下拉框功能实例代码
May 06 Javascript
第二篇Bootstrap起步
Jun 21 Javascript
js实现贪吃蛇小游戏(容易理解)
Jan 22 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
Jul 30 Javascript
Vue组件实现触底判断
Jun 26 Javascript
js实现简易计算器功能
Oct 18 Javascript
JS PHP字符串截取函数实现原理解析
Aug 29 Javascript
JS实现无限轮播无倒退效果
Sep 21 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
PHP实时显示输出
2008/10/02 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
PHP Session机制简介及用法
2014/08/19 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
javascript制作2048游戏
2015/03/30 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
Python编写检测数据库SA用户的方法
2014/07/11 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
在python里从协程返回一个值的示例
2019/02/19 Python
Python登录系统界面实现详解
2019/06/25 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
Python xlwt模块使用代码实例
2020/06/10 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
简历中自我评价分享
2013/10/09 职场文书
销售经理岗位职责
2014/03/16 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python