Javascript 正在等待文件读取器完成,然后继续
我有一段代码,我用它将一个blob分割成片段,它可以按预期的方式工作。但据我所知,fileReader是异步的,我的代码会在整个blob转换为片段并推入fragmentArray之前继续。在代码继续执行之前,是否有任何方法等待碎片数组被碎片完全填充Javascript 正在等待文件读取器完成,然后继续,javascript,arrays,asynchronous,filereader,Javascript,Arrays,Asynchronous,Filereader,我有一段代码,我用它将一个blob分割成片段,它可以按预期的方式工作。但据我所知,fileReader是异步的,我的代码会在整个blob转换为片段并推入fragmentArray之前继续。在代码继续执行之前,是否有任何方法等待碎片数组被碎片完全填充 var file = new Blob([SOME BLOB]); var fragmentArray = []; var chunkSize = 16384; var sliceFile = function
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);
将应该等待的代码放入
if
语句的else
分支中。谢谢!这就成功了。