Javascript Promises with FileReader()

前端 未结 6 1878
滥情空心
滥情空心 2020-12-05 00:25

I have the following HTML Code:


And Here\'s my JS Code:

var inputFiles = document.getE         


        
6条回答
  •  醉酒成梦
    2020-12-05 01:27

    Promisified FileReader

    /**
     * Promisified FileReader
     * More info https://developer.mozilla.org/en-US/docs/Web/API/FileReader
     * @param {*} file
     * @param {*} method: readAsArrayBuffer, readAsBinaryString, readAsDataURL, readAsText
     */
    export const readFile = (file = {}, method = 'readAsText') => {
      const reader = new FileReader()
      return new Promise((resolve, reject) => {
        reader[method](file)
        reader.onload = () => {
          resolve(reader)
        }
        reader.onerror = (error) => reject(error)
      })
    }
    

    Usage

    const file =  new File(["foo"], "foo.txt", {
      type: "text/plain",
    });
    
    // Text
    const resp1 = await readFile(file)
    console.log(resp1.result)
    
    // DataURL
    const resp2 = await readFile(file, 'readAsDataURL')
    console.log(resp2.result)
    

提交回复
热议问题