網(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
如何利用async、await來改進(jìn)函數(shù)?
元芳怎么了
2019-07-06 23:17:26