網上找了一段壓縮圖片的代碼,我把它放到單獨的helper.js文件里面,但是由于業務邏輯比較負責,所以不希望用原來的回調來實現,因此希望改進為通過async、await這種形式來避免回調的問題,該怎么改進呢?謝謝!代碼如下: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);//不希望通過此種方式實現};}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來改進函數?
躍然一笑
2019-07-26 23:36:27