为什么在Office.js中使用context.sync时会不断循环?

时间:2019-04-12 22:23:23

标签: javascript office-js

在使用Office.js的Word加载项中使用context.sync时,代码开始连续循环。如果我取出return context.sync(),循环将停止。我在不循环的OneNote加载项中有类似的代码。只有这个词能做到。

我已经尝试过注释掉该行或将return语句的一部分删除,但是没有运气。也许我不知道此同步如何工作?同样,它仅在Word中发生。

function getHTMLcontent() {

 // Run a batch operation against the Word object model.
    Word.run(function (context) {

        // Create a proxy object for the document body.
        var body = context.document.body;

        // Queue a commmand to get the HTML contents of the body.
        var bodyHTML = body.getHtml();

        // Synchronize the document state by executing the queued commands,
        // and return a promise to indicate task completion.
        return context.sync().then(function () {              
            html = bodyHTML.value;
            // console.log("Body HTML contents: " + html);
        });
   })
}

当用户键入以下代码时,该代码段用于运行该方法:

doc.addHandlerAsync(Office.EventType.DocumentSelectionChanged, 
    function(eventArgs){
    getHTMLcontent();
});

0 个答案:

没有答案