Ошибка «Promise.prototype.finally () не является функцией» в командах - PullRequest
2 голосов
/ 26 марта 2019

Promise.prototype.finally является частью спецификации ECMAScript более года и не дает ошибок в большинстве браузеров.

При использовании в настольном приложении Teams я вижу ошибку «Promise.prototype.finally () не является функцией» в консоли.Есть ли документация о том, что можно использовать в приложении для команд?

Я могу заполнить эту функцию, но хотел бы узнать о документации, касающейся любых других странностей или поддержки о том, что использовать?

Почему эта проблема возникает в настольном приложении Teams, а не в веб-приложении Teams?

Ответы [ 3 ]

3 голосов
/ 26 марта 2019

Даже если Microsoft Teams получил ES6 Promises, работающие в настольном клиенте, это не имеет значения, потому что команды должны работать на IE11, который их не поддерживает.Здесь доступно несколько вариантов.

  1. Используйте Babel для переноса JavaScript из ES6 и ES7 в ES5:

    Как получить Babel 6 длякомпилировать в ES5 javascript?

  2. Использовать TypeScript и целевой ES5 при компиляции:

    Typescript - Что такое цель в tsconfig?

  3. Используйте одно из многих доступных полифилов:

    https://ourcodeworld.com/articles/read/316/top-5-best-javascript-promises-polyfills

2 голосов
/ 27 марта 2019

Чтобы ответить на вопрос «почему», Microsoft Teams использует Electron 1.7.1 (в соответствии с файлом ThirdPartyNotice.txt, расположенным рядом с Teams.exe), а Promise.prototype.finally был добавлен только в Electron 3.x.

0 голосов
/ 26 марта 2019

Чтобы добавить ответ Wajeed, вы также можете использовать CDN для полизаполнения, который загружает только те полифиллы, которые требуются для браузера, который использует пользователь (конечно, на основе списка функций, которые вы, как разработчик, помечаете как необходимые для вашегоприложение для запуска): https://cdn.polyfill.io/v3/

Вы можете проверить, поддерживается ли ваша функция в каком браузере, можно ли использовать: https://caniuse.com/promise

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...