Javascript Vue.js:报告繁重操作的进度

Javascript Vue.js:报告繁重操作的进度,javascript,vuejs2,Javascript,Vuejs2,有没有办法在Vue.js中向用户报告繁重的javascript操作的进度 我有下一个代码: <p>{{currentProgress}}</p> ... data: function() { return { isLoading : false, currentProgress: "", } }, created: function() { globalLoading.subscribeOnChange((rec

有没有办法在Vue.js中向用户报告繁重的javascript操作的进度

我有下一个代码:

<p>{{currentProgress}}</p>

...

data: function() {
    return {
        isLoading : false,
        currentProgress: "",
    }
},
created: function() {
    globalLoading.subscribeOnChange((receivedLoading, progress) => {
        console.log("----> ", receivedLoading, progress);
        this.isLoading = receivedLoading;
        this.currentProgress = progress;

        this.$forceUpdate();
    });
},

我知道如果我使用
setInterval
而不是循环,它会工作,但我需要尽快完成繁重的操作-我不想将操作分割成块

将繁重的操作移动到webworker并在主线程上报告进度。@Nit现在我觉得自己真的很愚蠢。当然,我需要webworker,我不知道js有这样的功能。我已经写了一篇,它似乎在报告,但不幸的是很少。如果我在屏幕上单击,则会更新
get中的数字。有什么线索吗?@n组件
数据
中DevTools中的数字现在随着expected@Nit忘了最后一句话吧,我的坏朋友。我认为它有效。我也在给postMessage打电话often@Nit谢谢我最近才开始使用JS,这是一个全新的世界。我想我必须打破逻辑。我找到了一个使用yield的简洁方法,但是对于这样一个简单的任务来说,它仍然有点太复杂了。我明天会试试。不管怎样,谢谢,你帮了大忙
 methods: {
            testClick: function() {
                globalLoading.start("test");
                for (var i = 0; i < 1000000; i++) {
                    console.log("!");
                    globalLoading.updateProgress(i);
                    i++;
                }
            }
        },