有一個關于async的寫法問題,如下:定義了一個api,fetchUser(),可以有兩種寫法:第一種,不進行錯誤的顯示處理constfetchUser=async()=>{constres=awaitaxios.get('https://example.com')returnres.data}第二種,使用try..catch包裹constfetchUser=async()=>{try{constres=awaitaxios.get('https://example.com')returnres.data}catch(e){throwe.response}}使用上貌似沒有差別,如下:fetchUser().then(user=>console.log(user)).catch(err=>console.error(err))個人的疑惑在于錯誤的捕獲和處理,個人理解在于,只要是出現了錯誤,那么返回的promise對象就變成reject,只是第二個使用了catch捕獲后包裹了一下錯誤信息再手動拋出.第一種少些了一點代碼...所以想請教一下:這兩種寫法有沒有具體的差別,或者說,再更加復雜的異步情況下會有哪些不同?使用哪種寫法更加優雅?若能解答,不勝感激,多謝!
關于 promise 和 async/await 寫法問題?萬分感謝
飲歌長嘯
2019-11-03 09:45:42