Javascript 如何从XMLHttpRequest返回结果?

Javascript 如何从XMLHttpRequest返回结果?,javascript,xmlhttprequest,return-value,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)

我有以下函数将本地文件转换为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一无所知。

您可以将回调传递给函数,以便在加载文件时执行

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

通过回拨或承诺,这是否回答了您的问题?