0
我剛剛注意到FileReader API
跳過handleFiles(appCSV)
,而是返回undefined
。FileReader API跳過我的方法,即使它只有2.5 MB,並使用Chrome 57
appDictionary = handleFiles(appCSV);
dbDictionary = handleFiles(dbCSV);
我appCSV
文件大小剛好2584729 bytes
或只有約2.5 MB
。是由於這個問題?
這很奇怪,因爲我已經在使用Chrome 57
。
請幫助我調查並提供解決方案或解決方法。謝謝!
的handleFiles
的函數體:
function handleFiles(files) {
// Check for the various File API support.
if (window.FileReader) {
// FileReader are supported.
getAsText(files[0]);
} else {
alert('FileReader are not supported in this browser.');
}
}
function getAsText(fileToRead) {
let reader = new FileReader();
// Handle errors load
reader.onload = loadHandler;
reader.onerror = errorHandler;
// Read file into memory as UTF-8
reader.readAsText(fileToRead);
}
function loadHandler(event) {
let csv = event.target.result;
processDataToDictionary(csv);
}
function errorHandler(evt) {
if (evt.target.error.name == "NotReadableError") {
alert("Cannot read file!");
}
}
你能展示這個'handleFiles'函數的主體嗎?但是正如它所寫的,我已經可以做出一個有教育的猜測,即你不是在等待FileReader的onload事件,它的所有'readAs ...'方法都是異步的。 – Kaiido
[我如何從異步調用返回響應?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – Kaiido
@Kaiido嗨,我發佈了'handleFiles'函數的主體。 IT不會跳過'dbDictionary = handleFiles(dbCSV);'儘管只有'appDictionary'。請幫助我調查。 – JPaulPunzalan