我想獲取cos.deleteObject里的data數據然后Promise里獲取成功了反而async/await里獲取不到這個能幫助我告我下是什么原理嘛、cos那個應該是異步的方法然后await不是應該對這個同步后在執行其他的方法嘛?PromisefunctiondeleteImg(){returnnewPromise(function(resolve,reject){cos.deleteObject(params,function(err,data){if(err){resolve(err)}else{resolve(data)}})})}asyncawaitasyncfunctiondeleteImg(){vara=awaitcos.deleteObject(params,function(err,data){if(err){returnerr}else{returndata}})returna}
2 回答

慕慕森
TA貢獻1856條經驗 獲得超17個贊
cos.deleteObject用的是回調不是成功/失敗后走的then/catchawait之后的可以大體理解為Promise.resolve(之后的代碼)然后在then里把返回值返回給=號之前的變量可以看下co模塊理解下所以可以把回調修改為promise就是把你第一個封裝到promis的方法放到await之后

翻翻過去那場雪
TA貢獻2065條經驗 獲得超14個贊
你可以把async/await看成是在promise上面又封裝了一層,對promise對象有效,對用回調的普通函數無效:functiondeleteImg(){returnnewPromise(function(resolve,reject){cos.deleteObject(params,function(err,data){if(err){resolve(err)}else{resolve(data)}})})}asyncfunctiondelete(){constres=awaitdeleteImg()}