给ES6 Promise 扩展always方法

作者: lazydu | 来源:发表于2017-09-26 14:04 被阅读499次
es6 promise

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
欢迎star。

相关文章

  • 给ES6 Promise 扩展always方法

    ES6添加了Promise对象,成功时在then中处理,失败则在catch中处理,但有时候,我们需要在无论成功或失...

  • 实现 Promise/A+ 规范 & ES6 Promise方法

    实现 Promise/A+ 规范 检测通过 实现 ES6 Promise 方法

  • ES6 Promise

    ES6 promise 的一些常用方法 Promise.prototype.then() Promise.prot...

  • js sleep

    // promise 在ES6的语法中,Promise是sleep方法异步的实现一种方式,借助Promise方法可...

  • 第八周第二天笔记

    ES6之Promise类 1 Promise类基础知识解读 promise类的静态属性方法分类:resolve()...

  • JS模块化

    一、函数的Rest参数和扩展 二、Promise使用 三、modules.exports和ES6 import/e...

  • 面试题(2017~now)

    ES6 解构赋值/ 模版字符串 / 箭头函数 / 模块 / 扩展运算符 / 函数默认参数 / Promise/ a...

  • ES6新增特性(二)

    ES6 的内置对象扩展 Array 的扩展方法 一、Array 的扩展方法 1. 扩展运算符(展开语法) 扩展运算...

  • es6的数值,函数,字符串扩展

    一、es6的数值扩展 二、es6的函数扩展 代码效果:对象解构在函数中的应用 三、es6字符串扩展 常用方法 代码...

  • 微信小程序es6的class请求封装

    基于promise的小程序代码api封装。 新建promise.js,用es6类封装的方法。 新建request....

网友评论

    本文标题:给ES6 Promise 扩展always方法

    本文链接:https://www.haomeiwen.com/subject/ufusextx.html