JavaScript 异步异常处理 三 种姿势,try/catch 嵌套地狱 最常见也最糟糕。
- try/catch 包 await:层层嵌套,业务和错误处理混成一坨
- .catch() 链式:返回 undefined 难以判断错误来源
- 元组解构
[err, data]:Go 风格,推荐
封装一个 to(promise) 工具函数,10 行代码消灭所有 try/catch,错误处理变成一行 if (err) return。
关键:业务错误用元组、致命错误仍要抛,别用工具类把所有异常都吞掉。