-1
下面的代碼都有了.... promise.then(結果),而無需等待讀取完成文件執行了一個錯誤:錯誤jQuery的遞延代碼
doAsyncReadFromDisk = function(myReader)
{
var deferred = $.Deferred();
myReader.onload = function(event) {
deferred.resolve(event.target.result);
};
myReader.onerror = function() {
deferred.reject(this);
};
var rgReceivedFiles = document.getElementById('gdeReadFromDisk');
console.log('Selected file: ' + rgReceivedFiles.files.item(0).name);
myReader.readAsText(rgReceivedFiles.files.item(0));
return deferred.promise();
} // doAsyncReadFromDisk()
catalogFileParseCB = function(){
var fileReader = new FileReader();
var myPromise = doAsyncReadFromDisk(fileReader);
//alert('Space holder to let file read finish!');
myPromise.then(console.log(fileReader.result));
} // catalogFileParseCB
當
alert('Space holder to let file read finish!');
行未註釋,文件內容正常可用。因此,結論是myPromise.then(...)調用正在執行而不等待延遲調用的解決方案。
這對文件〜200MB(實數)數據以及較小的文件(測試數據)都會失敗。無法找到問題,我傾向於認爲問題不是
想知道是否有人能夠幫助識別錯誤。有沒有更好的方法來做到這一點?我們保證一次只讀取一個文件,但應該縮放數GB的數據大小。
感謝您的時間,欣賞等