亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有童鞋遇到過同樣的問題:要在 js 的 new Error 里傳遞出錯信息,只能傳遞字符串嗎?怎么回事哈啊?

有沒有童鞋遇到過同樣的問題:要在 js 的 new Error 里傳遞出錯信息,只能傳遞字符串嗎?怎么回事哈???

楊__羊羊 2019-07-27 09:31:23
我在一個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 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

這樣不就行了
Promise.reject(`${response.status}-${response.statusText}`)
catch(err){
const[status,statusText]=err.split('-')
//todo
}
                            
查看完整回答
反對 回復 2019-07-27
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

這種問題,一定要學會先查文檔,查不出來再提問。
參考MDNError,Error的構造函數里message只能是字符串,你傳什么都會轉成字符串。另外Promise.reject()就會返回rejected的Promise實例,不需要在里面再傳一個Error。
                            
查看完整回答
反對 回復 2019-07-27
  • 2 回答
  • 0 關注
  • 273 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號