等到一个耗时的函数完成

Wait until a time-consuming function finishes

在执行我的加载项时,有一个函数可能需要大约 15 秒才能 运行(在最坏的情况下)。我意识到在 Excel Online 中,系统会等待直到函数完成。但是,在ExcelWindows几秒后,系统认为插件没有响应,重新启动插件:

我做了一个耗时函数如下,不是我的初始函数。 ExcelWindows下的测试显示,点击test按钮后,文本区没有任何打印,数秒后系统重启加载项。

(function() {
    "use strict";

    Office.initialize = function(reason) {
        $(document).ready(function() {
            app.initialize();
            $('#test').click(test)
        });
    };

    function test() {
        document.getElementById("b").value += 'Start\n';
        var x = 10000;
        var w = 0;
        for (var i = 0; i < x; i++) {
            document.getElementById("b").value += i + '\n';
            for (var j = 0; j < x; j++) {
                for (var k = 0; k < x; k++) {
                    w = w + 1;
                    w = w - 1;
                }
            }
        }
        document.getElementById("b").value += 'End\n';
    }   
})();

有谁知道如何让系统等待?

这与您在常规网站中需要做的没有什么不同。请参阅此处的优秀文章 (https://www.nczonline.net/blog/2009/01/13/speed-up-your-javascript-part-1/),尤其是关于分块和使用 setTimeout 的部分。