Javascript 事件处理程序阻止渲染,直到完成

Javascript 事件处理程序阻止渲染,直到完成,javascript,android,cordova,meteor,spacebars,Javascript,Android,Cordova,Meteor,Spacebars,我用Spacebars Android应用程序制作了一个Meteor/PhoneGap,我想在它工作时在屏幕上显示更新,但我在事件处理程序中调用的UI更改实际上都没有显示。我的意思是: 我在屏幕上有一个下载文件的按钮。用户点击按钮后,我希望显示一个加载微调器,然后在下载完成后隐藏。我看到的行为是用户单击按钮,然后应用程序在下载时冻结,然后一旦下载完成,应用程序就会解冻。以下是下载按钮事件处理程序的代码: 'click [data-download-file]' (event, instance)

我用Spacebars Android应用程序制作了一个Meteor/PhoneGap,我想在它工作时在屏幕上显示更新,但我在事件处理程序中调用的UI更改实际上都没有显示。我的意思是:

我在屏幕上有一个下载文件的按钮。用户点击按钮后,我希望显示一个加载微调器,然后在下载完成后隐藏。我看到的行为是用户单击按钮,然后应用程序在下载时冻结,然后一旦下载完成,应用程序就会解冻。以下是下载按钮事件处理程序的代码:

'click [data-download-file]' (event, instance) {
        Spinner.open();
        cordova.plugins.fileDownloader.download(
            "https://myfile.com/file.txt",
            (success) => {
                Spinner.close();
            },
            (error) => {
                console.log(error);
                Spinner.close();
            }
        );
    }

cordova插件的某些地方只是阻止了渲染,因为如果我将整个cordova调用包装在setTimeout()中,一切都会按预期工作,但不可能是真正的解决方案。我知道必须有一个正确的方法来做到这一点。

听起来像是阻塞了,你对此做得不多it@Mikkel是否无法在其他线程上运行文件下载,因此它不会阻塞?浏览器是单线程的:)