【发布时间】:2020-06-09 11:38:54
【问题描述】:
Article Avoid using the context.sync method in loops 对我正在开发的 Word 插件提供了难以置信的帮助。采用本文介绍的技术后,我看到了巨大的性能提升。
这真的让我很开心。现在只剩下一个同步循环,我不知道如何处理它。这是示例代码。带有 context.sync() 的罪魁祸首函数在一个循环中运行,形成了让我发疯的同步循环。知道如何优化它吗?由于某种原因,这两个函数无法合并。
async function testFunc (ranges: Word.RangeCollection) {
for (let i=0; i<1000; i++) {
await culprit(ranges.items[i]);
}
}
async function culprit (range: Word.Range) {
range.load("text");
await range.context.sync();
}
【问题讨论】:
-
尝试循环加载,上下文同步,然后在第二个循环中读取实际文本。
-
正如@blackening 建议的那样,从
culprit中剪下await range.context.sync();行并将其插入到调用culprit的行之后。 -
@blackening 假设您的建议有效,请将其设为答案而不是评论,以便在 Stack 的统计信息中计为已回答。
-
@RickKirkham 谢谢。在没有测试的情况下推荐一些东西犹豫不决。很久没有在 office-js 上工作了。
标签: office-js word-addins