У меня есть этот код, который я использую, чтобы разбить большой двоичный объект на фрагменты, и он работает как задумано.Но, насколько мне известно, 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);