【发布时间】:2022-11-11 21:32:32
【问题描述】:
我有一个 JS File 对象,我需要将其转换为 base64 值并在 JSON 对象中返回该值。我正在使用 FileReader.readAsDataURL() 但由于它是异步的,因此我似乎没有“按时”获得 base64 值。我正在调用需要 obj 的回调函数。数据值,但未定义。
function mapFileData(file, callback) {
var obj = {};
obj.name = file.filename;
obj.size = file.fileSize;
obj.type = file.fileType;
obj.data = getBase64(file);
});
console.log(JSON.stringify(obj)); // file object with undefined 'data' value
callback(obj);
}
function getBase64(file) {
var fileReader = new FileReader();
if (file) {
fileReader.readAsDataURL(file);
}
fileReader.onload = function(event) {
return event.target.result;
};
}
当我调用callback(obj) 时,我真的不知道如何使obj.data 值可用。有什么帮助吗?
【问题讨论】:
标签: javascript asynchronous filereader