甚至还可以处理更复杂的情况
如今应当都知道 .catch(err => Promise.reject(xx)),这里的 xx 就是 try-catch 的 catch 块捕获到的对象,所以如不雅不合的营业 reject 出来不合的对象,比如有些是函数(表示缺点处理逻辑),有些是字符串(表示缺点消息),有些是数字(表示缺点代码)——其实只须要改 catch 块就行
- try {
- // ...
- } catch(something) {
- switch (typeof something) {
- case "string":
- // show message something
- break;
- case "function":
- something();
- break;
- case "number":
- // look up something as code
- // and show correlative message
- break;
- default:
- // deal with unknown error
- }
- }
小结
用什么方法取决于实用处景、团队商定和小我爱好等多种身分,在不合的情况下须要采取不合的处理方法,并不是说哪一种就必定好于另一种——合适的擦?鲱好的!
为什么?因为在 Dima 的模式中,if (err) 实际上处理了两个营业:一是捕获会引起中断的 err ,并将其转换为缺点消息,二是经由过程 return 中断营业过程。所以当 err 转换为缺点消息这一过程不再须要的时刻,这种捕获中断再从新引起中断的处理主显得多余了。
【编辑推荐】
- JavaScript的函数式编程,你懂得吗?
- 早年端到全端:JavaScript逆袭之路
- 若何用JavaScript实现双向数据绑定
- JavaScript开辟者的10款必备对象
- JavaScript的6个算法实用小技能
推荐阅读
2016年冬,我在一家创虻公司的小团队里搞软件开辟。彼时我们有一位真实的企业客户,且软件的第一版也已宣布。开辟按进度落成,在宣布时我欣喜若狂,也异常骄傲,看着体系办事于天天几百万>>>详细阅读
本文标题:从不用try-catch实现的async/await语法来说说错误处理
地址:http://www.17bianji.com/lsqh/38423.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示