cordova文件阅读器阻止执行javascript代码

时间:2014-08-26 15:29:20

标签: javascript angularjs cordova

我正在构建cordova + angularjs应用程序(在打字稿和ng-cordova的帮助下) 我有一个cordova fileReader函数的问题,它假设是异步的但在我的情况下它会阻止执行其他javascript代码,包括执行ng-click指令..而cordova读取的书索引大小为10 mb所有UI组件不要回应。

loadIndexFromBookFolder(bookFolder: string): ng.IPromise<ft.ILoadIndex> {
    var currentClass: SearchService = this;
    var deferred = this.$q.defer<ft.ILoadIndex>();

    this.$cordovaFile.readFile(bookFolder + '/index').then(function (idx) {
        currentClass.$cordovaFile.readFile(bookFolder + '/idMap').then(function (idMap) {
              deferred.resolve({ index: lunr.Index.load(JSON.parse(idx)), idMap: JSON.parse(idMap) });
        }, failed);
    }, failed);

    var failed = (err) => {
        this.$log.debug('error: ' + err); 
        deferred.reject();
    };

    return deferred.promise;
}

如果cordova文件读取器是异步的,那么还有什么可能导致阻塞java脚本的问题?

1 个答案:

答案 0 :(得分:0)

我在使用cordova和angular(Ionic 2)时遇到了类似的问题,也许这可以帮到你:

尝试更改 cordova.js polyfill.js 脚本的加载顺序,在我的情况下,加载&#34; polyfill.js&#34;在cordova脚本之前的脚本完全解决了这个问题。

以下是我找到此解决方案here的地方,您可以找到有关此问题的更多信息here