文件阅读器 - 返回文件?

时间:2014-03-06 16:06:49

标签: javascript

这是我的文件阅读器:

p.read = function(file) {
    var fileReader = new FileReader();
    fileReader.readAsDataURL(file);
    fileReader.onload = function(e) {

        return e.target.result;
    }
}

但没有回复?有什么想法吗?

2 个答案:

答案 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);
});