Как использовать Promise в ES5 - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь использовать Promise в своем приложении TypeScript. Но не похоже, что это возможно?

Сначала я попытался использовать Promise.all(), но затем я, конечно, получаю: «Обещание» относится только к типу, но используется здесь как значение ». И не имеет значения, если я вместо этого попытаюсь создать экземпляр Promise, выполнив new Promise().all() (или сделав это в два шага, то есть сначала создав экземпляр, а затем вызвав метод). И это также выдает то же сообщение об ошибке в моих заголовках функций, где я делаю async getData(): Promise<X>, что не имеет никакого смысла для меня.

Как указывалось в некоторых других обсуждениях этой проблемы, я изменил цель на "es6" с "es5" в моем файле tsconfig.json. Я также попытался изменить его на "ES2005". Это позволило мне построить приложение. Но когда я пытаюсь запустить его, я получаю

Не удалось создать экземпляр модуля [имя модуля] из-за: Ошибка: [$ injector: nomod] Модуль '[имя модуля]' недоступен

Возможно, есть что-то еще, что мне также нужно настроить при переходе с es5 на es6?

Я также попытался добавить "lib": [ "es2015" ] к параметрам компилятора в tsconfig.json, как предложено в другом потоке. Но потом я получаю несколько сотен ошибок, говоря что-то вроде: Build: Cannot find name 'Element'. File: angular.d.ts

Редактировать: Как предложено в комментариях, я также добавил «dom» в массив lib, что избавило от ошибок компиляции. Но вместо этого получите «ReferenceError:« Обещание »не определено».

Как мне это решить? Я в порядке с любым решением, которое позволяет мне использовать Promise.

Заранее спасибо!

...