WStanley
@WStanley
Back-end Developer

Как получить результат работы асинхронной функции?

Всем привет!
Мне надо файл отправить на сервер, у меня есть только url на файл
На просторах великого нарыл код он работает:
function getFileFromUrl(url='') {
    let xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    xhr.onload = (e) => {
        let reader = new FileReader();
        reader.readAsDataURL(xhr.response);
        reader.onload = (e) => {
            console.log(e.target.result)
        };
    };
    xhr.send();
}

Вопрос: как мне вернуть с функции e.target.result? Чую, что надо async шайтанить, а как, знаний не хватает.
Пожалуйста можно с объяснением, спасибо!
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
async function getFileFromUrl(url='') {
    let xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    let response = xhr.onload = (e) => {
        let reader = new FileReader();
        reader.readAsDataURL(xhr.response);
        return reader.onload = (e) => {
            return e.target.result
        };
    };

    await xhr.send();

   return await response

}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы