Ms office 等待一个耗时的函数完成

Ms office 等待一个耗时的函数完成,ms-office,office-js,Ms Office,Office Js,在我的外接程序的执行过程中,有一个函数可能需要大约15秒才能运行(在最坏的情况下)。我意识到在Excel Online中,系统将等待功能完成。但是,在Excel Windows中,几秒钟后,系统会认为外接程序没有响应,并重新启动外接程序: 我做了一个耗时的函数,如下所示,这不是我的初始函数。Excel Windows下的测试显示,单击test按钮后,文本区域中不会打印任何内容,几秒钟后,系统重新启动加载项 (function() { "use strict"; Office.

在我的外接程序的执行过程中,有一个函数可能需要大约15秒才能运行(在最坏的情况下)。我意识到在Excel Online中,系统将等待功能完成。但是,在Excel Windows中,几秒钟后,系统会认为外接程序没有响应,并重新启动外接程序:

我做了一个耗时的函数,如下所示,这不是我的初始函数。Excel Windows下的测试显示,单击
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';
    }   
})();
(函数(){
“严格使用”;
Office.initialize=函数(原因){
$(文档).ready(函数(){
app.initialize();
$(“#测试”)。单击(测试)
});
};
功能测试(){
document.getElementById(“b”).value+='Start\n';
var x=10000;
var w=0;
对于(变量i=0;i

有人知道如何让系统等待吗?

这与您在常规网站中需要做的没有什么不同。请参阅此处的优秀文章(),特别是关于分块和使用setTimeout的部分