本篇文章主要介绍了ES6 Promise 扩展always方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

最新资讯
华为主导首个软件定义摄像机国际标准诞生

华为主导首个软件定义

国际电信联盟第十六研究组(简称 ITU-T SG16)召开全体会
腾讯斥资142亿港元推股权激励 三万员工人均受益44万

腾讯斥资142亿港元推

腾讯控股在港交所公告称,将根据股份奖励计划发行2664万
英特尔宋继强:当下正面临着“智能X效应”的重大机遇

英特尔宋继强:当下正

2020世界人工智能大会云端峰会期间,英特尔中国研究院院
李国庆不是莽夫,俞渝不是怨妇

李国庆不是莽夫,俞渝不

李国庆被行政拘留了,遗憾的是,居然没有上热搜,心疼三十秒
银行网点年内已关闭1366家 九成业务可线上办理

银行网点年内已关闭13

银行网点的个人柜面业务占总业务量的比例已不足5%,且持
理想汽车提交IPO招股书 新造车赛道离实现理想还有多远?

理想汽车提交IPO招股

理想汽车今年一季度销售和日常行政费用仅有1.13亿人民
最新文章
Vue实现图片与文字混输效果

Vue实现图片与文字混

用多了 JQuery ,习惯了使用JQuery的API操作 DOM ,几乎忘
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)

Vue实现点击当前元素

这篇文章主要介绍了Vue实现点击当前元素以外的地方隐
Vue实现验证码功能

Vue实现验证码功能

这篇文章主要为大家详细介绍了Vue实现验证码功能,文中
JS实现的雪花飘落特效示例

JS实现的雪花飘落特效

这篇文章主要介绍了JS实现的雪花飘落特效,结合实例形
微信小程序实现图片压缩

微信小程序实现图片压

这篇文章主要为大家详细介绍了微信小程序实现图片压缩
JavaScript实现京东放大镜效果

JavaScript实现京东放

这篇文章主要为大家详细介绍了JavaScript实现京东放大