"Promise.prototype.finally() is not a function" Teams 中的错误
"Promise.prototype.finally() is not a function" error in Teams
Promise.prototype.finally 成为 ECMAScript 规范的一部分已经一年多了,并且在大多数浏览器中都没有错误。
在 Teams 桌面应用程序中使用时,我在控制台中看到 "Promise.prototype.finally() is not a function" 错误。是否有任何文档说明可以在 Teams 应用程序中使用什么?
我可以 polyfill 这个函数,但想知道关于任何其他怪癖的文档或关于使用什么的支持?
为什么这个问题是在 Teams 桌面应用而不是 Teams Web 应用中引起的?
即使 Microsoft Teams 在桌面客户端中使用 ES6 Promises 也没关系,因为 Teams 需要 运行 在不支持它们的 IE11 上。这里有多种选择。
使用 Babel 将 JavaScript 从 ES6 和 ES7 转译为 ES5:
编译时使用 TypeScript 和目标 ES5:
使用众多可用的 polyfill 之一:
https://ourcodeworld.com/articles/read/316/top-5-best-javascript-promises-polyfills
要添加 Wajeed 的答案,您还可以使用添加一个 polyfill CDN,它只下载用户正在使用的浏览器所需的 polyfill(当然基于您作为开发人员标记为必需的功能列表申请 运行): https://cdn.polyfill.io/v3/
您可以检查您的功能是否被我可以使用的浏览器支持:https://caniuse.com/promise
为了回答 "why" 问题,Microsoft Teams 使用 Electron 1.7.1(根据位于 Teams.exe
旁边的 ThirdPartyNotice.txt
文件)并且只添加了 Promise.prototype.finally
在电子 3.x.
Promise.prototype.finally 成为 ECMAScript 规范的一部分已经一年多了,并且在大多数浏览器中都没有错误。
在 Teams 桌面应用程序中使用时,我在控制台中看到 "Promise.prototype.finally() is not a function" 错误。是否有任何文档说明可以在 Teams 应用程序中使用什么?
我可以 polyfill 这个函数,但想知道关于任何其他怪癖的文档或关于使用什么的支持?
为什么这个问题是在 Teams 桌面应用而不是 Teams Web 应用中引起的?
即使 Microsoft Teams 在桌面客户端中使用 ES6 Promises 也没关系,因为 Teams 需要 运行 在不支持它们的 IE11 上。这里有多种选择。
使用 Babel 将 JavaScript 从 ES6 和 ES7 转译为 ES5:
编译时使用 TypeScript 和目标 ES5:
使用众多可用的 polyfill 之一:
https://ourcodeworld.com/articles/read/316/top-5-best-javascript-promises-polyfills
要添加 Wajeed 的答案,您还可以使用添加一个 polyfill CDN,它只下载用户正在使用的浏览器所需的 polyfill(当然基于您作为开发人员标记为必需的功能列表申请 运行): https://cdn.polyfill.io/v3/
您可以检查您的功能是否被我可以使用的浏览器支持:https://caniuse.com/promise
为了回答 "why" 问题,Microsoft Teams 使用 Electron 1.7.1(根据位于 Teams.exe
旁边的 ThirdPartyNotice.txt
文件)并且只添加了 Promise.prototype.finally
在电子 3.x.