如何从XMLHttpRequest返回结果?

时间:2020-05-20 06:24:44

标签: javascript xmlhttprequest return-value

我具有以下功能,可以将本地文件转换为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的新手。)

1 个答案:

答案 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);
});