Javascript 文件读取器-返回文件?
这是我的文件阅读器:Javascript 文件读取器-返回文件?,javascript,Javascript,这是我的文件阅读器: p.read = function(file) { var fileReader = new FileReader(); fileReader.readAsDataURL(file); fileReader.onload = function(e) { return e.target.result; } } 但是什么也没有归还?知道为什么吗?恐怕您无法从回调函数返回它 试着用另一个函数来分隔它 希望我能帮上忙这是一个异步函
p.read = function(file) {
var fileReader = new FileReader();
fileReader.readAsDataURL(file);
fileReader.onload = function(e) {
return e.target.result;
}
}
但是什么也没有归还?知道为什么吗?恐怕您无法从回调函数返回它 试着用另一个函数来分隔它
希望我能帮上忙这是一个异步函数。这意味着如果你这样做:
p.read = function(file) {
var fileReader = new FileReader();
fileReader.readAsDataURL(file);
console.log('a');
fileReader.onload = function(e) {
console.log('b');
return e.target.result;
}
}
以及:
你会得到
hello
c
a
b
因为JavaScript是异步的。非常好的b/c,就像这样,您的代码是非阻塞的:在读取大文件时执行某些操作非常容易
在您的示例中,您必须执行以下操作:
p.read = function(file, callback) {
var fileReader = new FileReader();
fileReader.readAsDataURL(file);
fileReader.onload = function(e) {
callback(e.target.result);
}
}
而要运行:
p.read('file', function(content) {
console.log(content);
});
您尝试过fileReader.result吗?您无法从异步回调函数返回任何内容。再看看@Bergi,我不知道我怎么会看不到回报。出于某种原因,我认为他们正在打印值,并且在函数返回时遇到了问题。该返回嵌套在另一个函数中,该函数将在将来的某个时间执行。它对外部功能没有影响。
p.read('file', function(content) {
console.log(content);
});