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

我在一个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]",这怎么分析呢?难道只能传递个字符串,然后下游代码也跟着修改?求教
MMMHUHU
浏览 1570回答 2
2回答

慕桂英3389331

这样不就行了Promise.reject(`${response.status}-${response.statusText}`)catch(err){const[status,statusText]=err.split('-')//todo}

达令说

这种问题,一定要学会先查文档,查不出来再提问。参考MDNError,Error的构造函数里message只能是字符串,你传什么都会转成字符串。另外Promise.reject()就会返回rejected的Promise实例,不需要在里面再传一个Error。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript