怎样让FileReader返回base64?

传入一个blob然后打印出来提示undefined 哪里写的不对呢?

function blobToDataURL (blob) {
    let base64
    var a = new FileReader()
    a.readAsDataURL(blob)
    a.onload = function (e) {
      base64 = e.target.result
      return base64
    }
}
阅读 2k
1 个回答

方法是异步的当然打印undefined,可以用promise包装下

function blobToDataURL (blob) {
    return new Promise((resolve, reject) => {
        let base64
        var a = new FileReader()
        a.readAsDataURL(blob)
        a.onload = function (e) {
          base64 = e.target.result
          resolve(base64)
        }
    }) 
}
blobToDataURL(blob).then(res => console.log(res))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题