Ожидание завершения чтения файла, прежде чем продолжить - PullRequest
0 голосов
/ 08 июня 2018

У меня есть этот код, который я использую, чтобы разбить большой двоичный объект на фрагменты, и он работает как задумано.Но, насколько мне известно, fileReader работает асинхронно, и мой код продолжается до того, как весь BLOB-объект может быть преобразован во фрагменты и помещен в фрагмент Array.Есть ли способ подождать, пока фрагментArray полностью заполнится фрагментами, прежде чем код продолжит выполнение?

 var file = new Blob([SOME BLOB]);
 var fragmentArray = [];
 var chunkSize = 16384;

                var sliceFile = function (offset) {
                    var reader = new window.FileReader();
                    reader.onload = (function () {
                        return function (e) {
                            fragmentArray.push(e.target.result);
                            if (file.size > offset + e.target.result.byteLength) {
                                window.setTimeout(sliceFile, 0, offset + chunkSize);
                            }
                        };
                    })(file);
                    var slice = file.slice(offset, offset + chunkSize);
                    reader.readAsArrayBuffer(slice);
                };
                sliceFile(0); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...