Javascript Загрузка и чтение содержимого файла из Dropbox - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь загрузить файл, загруженный в качестве теста, в Dropbox.Функция загрузки работает, и я также получаю файл-блоб, но у меня возникают проблемы с чтением содержимого файла

function downloadFile() {
            dbx.filesDownload({path: '/_bk_test/test3.json'})
            .then(function(response) {     
                var blob = response.fileBlob;
                var reader = new FileReader();
                reader.addEventListener("loadend", function() {
                    console.log(reader.result); // will print out file content
                });
                reader.readAsText(blob);
            })
            .catch(function(error) {
                console.error(error);
            }); 
}

Но я получаю эту ошибку как вывод

Promise {<pending>}
VM215:11 TypeError: reader.addEventListener is not a function
    at <anonymous>:5:24

Это странно,

Но если я сохраню response.fileBlob в глобальной переменной, а затем использую функцию reader, она не покажет ошибку TypeError.Но я все еще не могу прочитать содержимое файла.

В любом случае, это проблемы
1. В функции FileReader выдает исключение.
2. За пределами функции FileReader не являетсяпоказывая содержимое файла.

PS - Тестирование в Cordova

1 Ответ

0 голосов
/ 01 июня 2018

Хорошо, у Cordova другой API

    function downloadFile() {
        dbx.filesDownload({path: '/_bk_test/test3.json'})
        .then(function(response) {     
            var blob = response.fileBlob;
            var reader = new FileReader();
            reader.onloadend = function(evt) {
                console.log("read success");
                console.log(evt.target.result);
            };                
            reader.readAsText(blob);
        })
        .catch(function(error) {
            console.error(error);
        }); 
    }
...