MS Office加载项,JavaScript和异步/等待

问题描述 投票:-2回答:1

[我目前正在努力加快编写Excel外接程序的工作,并完成了大量阅读有关该主题的工作,并在遵循此excellent tutorial series

在示例中,演示者正在使用TypeScript,但是,我正在处理的当前项目需要JavaScript。

我已在Visual Studio 2019 Community Edition的JavaScript Excel Web Add-In项目中而不是在Script Lab中复制了该示例,并且在Desktop Excel上调试该加载项似乎正在工作。

我的问题是在我的JavaScript版本中使用TypeScript示例的async / await语法时出现的,因为调试器在使用它时会引发语法错误。我对JS的异步编程没有太多经验,所以从一开始我就知道为什么异步/等待比嵌套回调或Promises更易于使用。链接thens在我看来很痛苦,如果可以的话,我宁愿使用async / await。

让我跑了一会儿的原因是JavaScript显然does支持异步/等待。因此,我现在唯一想到的是Excel运行的JavaScript版本是ECMAScript 8之前的版本。我在JS中找不到使用async / await的任何Office.js加载项示例。我不知道体系结构如何相互联系,但是如果有人可以确认这一点,我将不胜感激,因为我宁愿听到JavaScript版本存在问题,因此我只能对它进行任何处理,而不是在错误的情况下继续进行。假设,错过使用异步/等待的机会。 [旁注:我也知道OfficeExtension.Promise,但这仍然不愉快。

提前感谢。

javascript excel async-await office-js office-addins
1个回答
0
投票

如果从await / async中收到语法错误,则可能正在使用IE作为浏览器的Office版本上进行测试。 (有关在各个版本的Office上使用哪种浏览器的信息,请参见Browsers used by Office Add-ins。)IE本身不支持ES5之后的任何版本的JavaScript,因此它无法识别异步/等待(或Promises)。要在浏览器为IE时使用ES6 +的这些功能,您需要加载polyfill或使用诸如tsc或babel之类的编译器将ES6 +代码转换为ES5代码。

© www.soinside.com 2019 - 2024. All rights reserved.