ES6 Promise 扩展 always 方法详解
本文介绍如何为 ES6 Promise 扩展 always 方法,实现无论成功或失败均执行特定逻辑(如隐藏加载状态、记录日志)。通过 es6-promise-always 库,开发者可复用 jQuery 的 always 接口,简化代码冗余,支持 Node.js 和浏览器环境。
ES6 Promise 扩展 always 方法详解
ES6 引入了 Promise 对象,成功结果在 then 中处理,失败结果在 catch 中处理。然而,有时我们需要在无论成功或失败的情况下都执行某些操作,例如隐藏加载状态或记录日志。以下以浏览器端的 AJAX 请求为例,使用基于 Promise 的 axios 库进行说明:
axios.get("/").then(()=>{
//处理逻辑
...
console.log("请求结束")
hideLoading();
}).catch(()=>{
console.log("请求结束")
hideLoading();
})
这种写法显得较为冗余。每当遇到这种情况,难免会怀念 jQuery 提供的简洁接口:
$.get("/").done(()=>{
//处理逻辑
}).always(()=>{
console.log("请求结束")
hideLoading();
})
es6-promise-always 正是对 ES6 功能的扩展,使其支持 always 方法,同时兼容 Node.js 和浏览器环境。
使用方法
使用方法如下:
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 传递的数据。
提示
无需担心这会增加程序体积,es6-promise-always 非常轻量。在最初实现 always 时曾走错方向,但幸运的是及时纠正。GitHub 地址:https://github.com/wendux/es6-promise-always
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
JS解析Excel后怎么将数据转换为JSON格式
2026-11-04 20:58:28
