如下代碼,一直輸出Unhandledpromiserejection(rejectionid:1):error1,怎么避免?主要功能為getVal第一次調(diào)用預(yù)加載,第二次調(diào)用時(shí)沒(méi)返回就等,返回了就直接取值constrejects=[0,1]leti=0functiongetSummary(id){returnnewPromise((resolve,reject)=>{console.log('rr',id,i)if(rejects.includes(i)){setTimeout(()=>reject('error1'),200)}elseif(id===1){setTimeout(()=>resolve(id),200)}else{setTimeout(()=>resolve(id),500)}i++})}classTest{test(){this.getVal()setTimeout(async()=>{try{constval=awaitthis.getVal()console.log('get1',val)}catch(ex){console.log('error')}console.log('get2',awaitthis.getVal())},1000)}asyncgetVal(){try{if(!this.summary){this.summary=getSummary(1).catch(()=>getSummary(2)).then((data)=>{this.summary=datareturndata})}elseif(this.summary.then){returnawaitthis.summary}}catch(ex){this.summary=null}returnthis.summary}}newTest().test()已解決見(jiàn)3樓如1樓所說(shuō),第一個(gè)getVal異常被上拋了,直接trycatch也不行,只能Await才行。只好去看await改成3樓的了
奇怪的 Unhandled promise rejection
狐的傳說(shuō)
2019-05-12 15:35:35