这是我的文件阅读器:
p.read = function(file) {
var fileReader = new FileReader();
fileReader.readAsDataURL(file);
fileReader.onload = function(e) {
return e.target.result;
}
}
但没有回复?有什么想法吗?
答案 0 :(得分:0)
我担心你无法从回调函数中返回它
尝试将其与另一个函数分开
我希望我帮助
答案 1 :(得分:0)
这是一个异步功能。这意味着,如果你这样做:
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;
}
}
和:
console.log('hello');
p.read('file');
console.log('c');
你会得到
hello
c
a
b
因为javacript是异步的。非常好的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);
});