MS Office 加载项,JavaScript 和 async/await
MS Office Add-Ins, JavaScript and async/await
我目前正在努力加快为 Excel 编写插件的速度,并且已经阅读了大量有关该主题的文章,并且正在关注此 excellent tutorial series。
在示例中,演示者使用的是 TypeScript,但是,我正在处理的当前项目需要 JavaScript。
我在 JavaScript Excel Web 插件项目中复制了示例 Visual Studio 2019 Community Edition 而不是 Script Lab 并在桌面上调试插件 Excel 似乎有效。
我的问题是在我的 JavaScript 版本中使用 TypeScript 示例的 async/await 语法时出现的,因为调试器在我使用它时会抛出语法错误。没有多少 JS 异步编程经验,我从一开始就明白为什么 async/await 比嵌套回调或 Promises 更容易使用。链接 然后 对我来说看起来很痛苦,如果可以的话我宁愿使用 async/await。
运行 让我有一阵子的是 JavaScript 显然 支持 async/await。所以,我现在唯一能想到的是,Excel 是 运行ning 的 JavaScript 版本是 ECMAScript 8 之前的版本。我找不到任何 Office.js 在 JS 中使用 async/await 的加载项示例。我不知道架构是如何连接在一起的,但如果有人能证实这一点,我将不胜感激,因为我宁愿听到 JavaScript 版本存在问题,因此我对此无能为力在错误的假设下继续,错过了使用 async/await 的机会。 [旁注:我也知道 OfficeExtension.Promise 但这仍然令人讨厌)。
提前致谢。
如果您收到来自 await/async 的语法错误,那么您可能正在使用 IE 作为浏览器的 Office 版本进行测试。 (关于各个版本的 Office 使用的浏览器的信息,请参阅 Browsers used by Office Add-ins。)IE 本身不支持 ES5 之后的任何 JavaScript 版本,因此它无法识别 async/await(或承诺)。要在浏览器为 IE 时使用 ES6+ 的这些功能,您需要加载 polyfill 或使用 tsc 或 babel 等转译器将 ES6+ 代码转译为 ES5 代码。
我目前正在努力加快为 Excel 编写插件的速度,并且已经阅读了大量有关该主题的文章,并且正在关注此 excellent tutorial series。
在示例中,演示者使用的是 TypeScript,但是,我正在处理的当前项目需要 JavaScript。
我在 JavaScript Excel Web 插件项目中复制了示例 Visual Studio 2019 Community Edition 而不是 Script Lab 并在桌面上调试插件 Excel 似乎有效。
我的问题是在我的 JavaScript 版本中使用 TypeScript 示例的 async/await 语法时出现的,因为调试器在我使用它时会抛出语法错误。没有多少 JS 异步编程经验,我从一开始就明白为什么 async/await 比嵌套回调或 Promises 更容易使用。链接 然后 对我来说看起来很痛苦,如果可以的话我宁愿使用 async/await。
运行 让我有一阵子的是 JavaScript 显然 支持 async/await。所以,我现在唯一能想到的是,Excel 是 运行ning 的 JavaScript 版本是 ECMAScript 8 之前的版本。我找不到任何 Office.js 在 JS 中使用 async/await 的加载项示例。我不知道架构是如何连接在一起的,但如果有人能证实这一点,我将不胜感激,因为我宁愿听到 JavaScript 版本存在问题,因此我对此无能为力在错误的假设下继续,错过了使用 async/await 的机会。 [旁注:我也知道 OfficeExtension.Promise 但这仍然令人讨厌)。
提前致谢。
如果您收到来自 await/async 的语法错误,那么您可能正在使用 IE 作为浏览器的 Office 版本进行测试。 (关于各个版本的 Office 使用的浏览器的信息,请参阅 Browsers used by Office Add-ins。)IE 本身不支持 ES5 之后的任何 JavaScript 版本,因此它无法识别 async/await(或承诺)。要在浏览器为 IE 时使用 ES6+ 的这些功能,您需要加载 polyfill 或使用 tsc 或 babel 等转译器将 ES6+ 代码转译为 ES5 代码。