深入理解ES6 Promise 扩展always方法

作者:lazydu 时间:2024-04-18 09:46:46 

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

来源:http://www.jianshu.com/p/a8473647253d

标签:ES6,Promise,always
0
投稿

猜你喜欢

  • python实现控制台打印的方法

    2021-12-18 12:21:04
  • 关于php unset对json_encode的影响详解

    2023-07-06 08:33:52
  • 浅谈慢SQL优化之索引的作用

    2024-01-24 20:31:54
  • Python识别二维码的两种方法详解

    2022-08-20 23:44:12
  • vscode单击新文件时覆盖旧文件的解决方法

    2022-02-16 09:09:48
  • Python GUI布局尺寸适配方法

    2022-03-07 05:52:26
  • Python中矩阵库Numpy基本操作详解

    2021-07-09 18:13:05
  • 定制FileField中的上传文件名称实例

    2022-06-07 14:21:05
  • python pip安装的包目录(site-packages目录的位置)

    2022-08-23 13:20:38
  • HTTP Headers 傻瓜教程[译]

    2010-01-25 12:48:00
  • 基于Python实现骰子小游戏

    2023-07-11 22:39:58
  • 详解如何在ChatGPT内构建一个Python解释器

    2022-06-18 21:37:38
  • select count()和select count(1)的区别和执行方式讲解

    2024-01-29 03:11:31
  • 通过SQL Server的位运算功能巧妙解决多选查询方法

    2024-01-22 01:21:26
  • python中csv文件创建、读取及修改等操作实例

    2023-07-31 23:22:25
  • 基于prototype扩展的JavaScript常用函数库

    2023-08-24 15:09:57
  • 基于Python制作B站视频下载小工具

    2023-11-18 11:58:50
  • MySQL主从复制的原理及配置方法(比较详细)

    2024-01-28 18:21:02
  • python实现超简单端口转发的方法

    2022-12-25 04:00:53
  • vue 巧用过渡效果(小结)

    2024-04-10 10:33:28
  • asp之家 网络编程 m.aspxhome.com