@etop/await-err-handle
v1.0.5
Published
异步请求错误处理
Downloads
3
Keywords
Readme
await-err-handle
功能
- 使用 to 包装的异步函数可以直接拿到 err 和 res,不必使用 try-catch
- 可以配置统一的错误处理函数,减少一些通用的逻辑的书写,例如业务中出错默认提示后端返回的错误信息或“系统错误”
- 通过配置 to 的第二个参数可以实现某个函数出错时显示特定的错误信息,允许配置该函数不走默认的错误处理逻辑
用法
- 安装
npm i -S @etop/await-err-handle
- 在
main.ts
中注册统一的错误处理函数(可选,不注册即没有统一逻辑)
import to from '@etop/await-err-handle'
to.prototype.register((err: string | Resp<any>) => {
// 内部逻辑自定义,表示统一的错误处理
// ...
})
例如,将逻辑设置为:优先展示用户自定义的错误信息,没有的话展示后端返回的错误信息,兜底展示 “系统错误”,则写入如下逻辑代码:
import to from '@etop/await-err-handle'
to.prototype.register((err: string | Resp<any>) => {
const msg = (typeof err === 'string' ? err : err.msg) || '系统错误'
Message.error(msg) // 需要导入 element
})
- 在需要使用的组件中导入,将异步方法放在 to 函数的参数里,errorMsg 参数根据业务需求自定义
import to from '@etop/await-err-handle'
// ...
// 出错时显示自定义错误信息(会覆盖 register 中设置的错误信息)
const [err1, res1] = await to(asyncFn1(param), '自定义错误信息')
// 出错时什么都不做(不走 register 中函数的逻辑),与不写 register 效果相同
const [err2, res2] = await to(asyncFn2(param), false)
// 出错时显示 register 中配置的默认提示信息
const [err3, res3] = await to(asyncFn3(param))
// ... 对请求结果或错误做处理