修身养性,知行合一

  • 首页
  • 爱码
    • 系统
    • 数据库
    • JavaScript
    • CSharp
    • Python
  • 生活
    • 文化
    • 美食
  • 杂谈
  • 关于
修身养性,知行合一
码字,杂谈
  1. 首页
  2. 爱码
  3. 正文

js 中优雅的捕获 await 的异常

2020年12月1日 2799点热度 2人点赞 0条评论

看了 await-to-js,不由得佩服大神的思路。看起来很简单,但是有时候很简单的方案就可以解决很看似很复杂的问题。

前置知识:

  • async
  • await
  • Promise

百度一下,基本全是官方文档照抄的内容,我就不超了,有不明白的同学自己去看吧。

两个版本,可以直接使用,跟 npm 下载的一样。

js 版本:

function to(promise, errorExt) {
  return promise
    .then(data => [null, data])
    .catch(err => {
      if (errorExt) {
        Object.assign(err, errorExt);
      }
      return [err, undefined];
    });
}

ts版本:

function to<T, U = any>(
  promise: Promise<T>,
  errorExt?: object
): Promise<[U | null, T | undefined]> {
  return promise
    .then<[null, T]>((data: T) => [null, data])
    .catch<[U, undefined]>(err => {
      if (errorExt) {
        Object.assign(err, errorExt);
      }
      return [err, undefined];
    });
}
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020年12月1日

jeremyjone

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

最新 热点 随机
最新 热点 随机
绘制一个可重用的线条阴影 node-sass 的安装 解决端口被占的问题 vue3 组件 Props 的声明方式 给 div 添加选中状态 请求的取消
绘制一个可重用的线条阴影
Windows 10上获得类似Mac的流畅字体 MongoDB安装后允许其他IP访问的方法 axios的二次封装 IdentityServer4深入使用(三)-- Jwt 真丶深入理解JavaScript异步编程(最终章):手撸 Promise windows 无法登录便签、OneNote等应用

(っ•̀ω•́)っ✎⁾⁾ 开心每一天

COPYRIGHT © 2021 jeremyjone.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

京ICP备19012859号-1

京公网安备 11010802028585号