js JavaScript 封裝非同步函式並被呼叫
阿新 • • 發佈:2021-10-27
案例:檔案上傳前解析出json作為函式被呼叫
最初樣子
大佬指點
promise
function parseJson(file) { return new Promise( (resolve, reject) => { const reader = new FileReader(); reader.addEventListener('load', function(ev) {try { const obj = JSON.parse(ev.target.result); resolve(obj) } catch (error) { reject(error) } }) reader.readAsText(file) } ) } asyncfunction toParse(target) { const data = await parseJson(target.files[0]); console.log(data) }
回撥函式,
// util.js export function getBase64 (img, callback) { console.log('getBase64', img) const reader = new FileReader() reader.addEventListener('load', (e) => { callback(reader.result) }) reader.readAsDataURL(img) } handleChange (info) {// 得到blob格式資料 上傳 getBase64(item.originFileObj, (result) => { __this.fileBlobObj[item.name] = dataURLtoBlobs(result) __this.postImage(item) }) }