第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何利用async、await來改進(jìn)函數(shù)?

如何利用async、await來改進(jìn)函數(shù)?

元芳怎么了 2019-07-06 23:17:26
網(wǎng)上找了一段壓縮圖片的代碼,我把它放到單獨(dú)的helper.js文件里面,但是由于業(yè)務(wù)邏輯比較負(fù)責(zé),所以不希望用原來的回調(diào)來實(shí)現(xiàn),因此希望改進(jìn)為通過async、await這種形式來避免回調(diào)的問題,該怎么改進(jìn)呢?謝謝!代碼如下:exportfunctioncompress(fileObj,callback){try{constimage=newImage();image.src=URL.createObjectURL(fileObj);image.onload=function(){constthat=this;letw=that.width;leth=that.height;constscale=w/h;w=fileObj.width||w;h=fileObj.height||w/scale;letquality=0.7;constcanvas=document.createElement("canvas");constctx=canvas.getContext("2d");constanw=document.createAttribute("width");anw.nodeValue=w;constanh=document.createAttribute("height");anh.nodeValue=h;canvas.setAttributeNode(anw);canvas.setAttributeNode(anh);ctx.drawImage(that,0,0,w,h);if(fileObj.quality&&fileObj.quality0){quality=fileObj.quality;}constdata=canvas.toDataURL("image/jpeg",quality);constnewFile=convertBase64UrlToBlob(data);callback(newFile);//不希望通過此種方式實(shí)現(xiàn)};}catch(e){console.log("error!");}}functionconvertBase64UrlToBlob(urlData){constbytes=window.atob(urlData.split(",")[1]);constab=newArrayBuffer(bytes.length);constia=newUint8Array(ab);for(leti=0;i
查看完整描述

2 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個贊

大致思路,先讓compress返回Promise對象,然后聲明為async,
exportasyncfunctioncompress(fileObj){
returnnewPromise(
(resolve,reject)=>{
....
constnewFile=convertBase64UrlToBlob(data);
resolve(newFile);
....
catch(e){
console.log("error!");
reject(e);
}
}
);
}
                            
查看完整回答
反對 回復(fù) 2019-07-06
  • 2 回答
  • 0 關(guān)注
  • 273 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號