我具有以下功能,可以将本地文件转换为base64。当我运行它时,它将结果(res
)写入控制台。如何从函数中返回res
的内容,以便可以在另一个函数中使用它?
function convertToBase64() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "1.jpg", true);
xhr.responseType = "blob";
xhr.onload = function (e) {
var reader = new FileReader();
reader.onload = function(event) {
var res = event.target.result;
console.log(res);
}
var file = this.response;
reader.readAsDataURL(file)
};
xhr.send()
}
(我是JavaScript的新手。)
答案 0 :(得分:1)
您可以将回调传递给函数,以在加载文件时执行
function convertToBase64(onLoad) {
var xhr = new XMLHttpRequest();
xhr.open("GET", "1.jpg", true);
xhr.responseType = "blob";
xhr.onload = function (e) {
var reader = new FileReader();
reader.onload = function(event) {
var res = event.target.result;
console.log(res);
onLoad(res); // callback
}
var file = this.response;
reader.readAsDataURL(file)
};
xhr.send()
}
现在您可以执行以下操作:
convertToBase64(function(res) {
console.log('response loaded' , res);
});