FileReader有时可以使用,有时不使用cordova

时间:2015-08-06 23:04:06

标签: html5 cordova uglifyjs html5-filesystem

方法FileReader.readAsArrayBuffer不会执行处理程序,也不会出错。

有时会出现问题,而不是在运行时,但是当我运行r.js进程时(使用grunt grunt-contrib-requirejs)。

这很奇怪。

代码是:

CoFS.prototype.readFromFileObject = function (file, callback) {                                                                         
    var self = this;

    this._log("Creating filereader object", file);
    var reader = new FileReader();

    reader.onloadend = function (evt) {
        self._log("load end call! with large (relative): ", this.result.length );

        if (!this.result) return null;

        var Buf  = arrayBufferToBuffer(this.result);

        callback(null, Buf);
    };

    reader.onerror = function (ev) {
        self._log("Error Reading file", ev);
        callback(new Error('Reading file'));
    };

    reader.onabort = function (ev) {
        self._log("Reading file Abort!!");
        callback(new Error('Reading abort')); 
    };

    reader.onload = function () {
        self._log("load");
    };

    reader.onloadstart = function () {
        self._log("start");
    };

    reader.onprogress = function () {
        self.log("progress");
    };

    try {
        reader.readAsArrayBuffer(file);
    } catch (e) {
        self._log(e);   
    }
};

起初我以为这是定义一些对象的失败:

    if (!FileReader) FileReader = window.FileReader  || null;
    if (!requestFileSystem) requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem || null;
    if (!File) File = window.File || null;

    if (!FileReader || !File) 
        throw new Error("Objects of file API does not exists!");

但是调试,我意识到所有变量都是它们应该是:

debug http://esfriki.com/f/wtf.min.png

  

更新:我编辑了这个,但最终这不是因为minify,这是我构建时随机出现的错误。

0 个答案:

没有答案