为了账号安全,请及时绑定邮箱和手机立即绑定

跪求!要在 js 的 new Error 里传递出错信息,只能传递字符串吗?求指导!

跪求!要在 js 的 new Error 里传递出错信息,只能传递字符串吗?求指导!

MMMHUHU 2019-08-09 23:51:57
我在一个promise返回reject的时候,原本是直接返回一个普通对象:returnPromise.reject({status:response.status,statusText:response.statusText})但后来发现ESlint推荐将reject返回值包含在Error里(eslint(prefer-promise-reject-errors)),于是加上了Error:returnPromise.reject(newError({status:response.status,statusText:response.statusText}))问题来了,原本可以在catch里分析返回的status,现在作为Error对象的message打印出来是"[objectObject]",这怎么分析呢?难道只能传递个字符串,然后下游代码也跟着修改?求教
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

这样不就行了
Promise.reject(`${response.status}-${response.statusText}`)
catch(err){
const[status,statusText]=err.split('-')
//todo
}
                            
查看完整回答
反对 回复 2019-08-09
?
达令说

TA贡献1821条经验 获得超6个赞

这种问题,一定要学会先查文档,查不出来再提问。
参考MDNError,Error的构造函数里message只能是字符串,你传什么都会转成字符串。另外Promise.reject()就会返回rejected的Promise实例,不需要在里面再传一个Error。
                            
查看完整回答
反对 回复 2019-08-09
  • 2 回答
  • 0 关注
  • 1569 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号