我预计,在Javascript中捕获的任何异常都会传递一条消息和一个堆栈。
try {
doSomething();
} catch(e) {
alert(e.message);alert(e.stack);alert(JSON.stringify(e));
}
然而,我得到的是两个带有字符串undefined
和一个{ code: 7 }
的警报
是什么造成的?
function doSomething() {
reader.readAsDataURL(file);
reader.onload = function(event) {
var result = event.target.result;
var jqxhr = $.post(url, { data: result}, function(data) { alert(data); });
}
}
自己发现了:
directoryReader.readEntries(function(entries){
for (var i=0; i<entries.length; i++) {
//NOT here!!
//var reader = new FileReader();
var entry = entries[i];
entry.file(function(file){
//here!!
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(){}
});
}
});