zone.js:668 Error: Uncaught (in promise): [object Undefined]
Это ошибка, которая выходит за рамки вашего исходного кода.Вот почему нет трассировки стека, которая связана с чем-то, что вы можете отладить напрямую.Вы можете попытаться изменить свой исходный код или добавить сообщения журнала консоли, но я думаю, что это не поможет вам найти его.
Скорее всего, это ошибка конфигурации.
Вы можете получить эту ошибку, когда Angular не сможет загрузить модули.Проверьте каждый из ваших модулей и убедитесь, что все объявления, импорт, экспорт и т. Д. И т. Д. Верны.Убедитесь, что вы используете правильные токены инъекций и инъекционные ссылки.
Если это происходит после запуска приложения.Это может быть ошибка ленивой загрузки модуля.Повторите описанные выше шаги.
Если это не поможет найти причину, необходимо удалить как можно больше вещей и медленно добавить их обратно.Пока вы не найдете виновника.
Создайте пустой компонент, который ничего не делает, и сделайте его компонентом ввода.Закомментируйте всех ваших провайдеров и закомментируйте все ваши декларации.Продолжайте комментировать то, что использует основной модуль, до тех пор, пока приложение не запустится успешно.
Медленно добавляйте своих провайдеров и декларации, пока оно снова не сломается.
Это должно помочь вам сузить место в конфигурации вашего модуля.проблема в.Надеюсь, что именно в этом причина проблемы.
Конечно, есть много других причин, которые могут вызвать эту ошибку.
- Попробуйте обернуть исходный код, который использует сторонние (неугловые) библиотеки в
zone.runOutsideAngular(()=>{....})
, чтобы любые необработанные ошибки не отслеживались зонами. - Создайте приложение в рабочем режиме, но включите исходные карты для отладки.
ng build --prod --sourcemaps
- Добавьте службу
ErrorHandler
и посмотрите, не обнаружит ли она ошибку.Как это позволит вам осмотреть брошенный объект.Вы добавляете провайдера в свой модуль следующим образом {provide: ErrorHandler, useClass: MyHandlerService}
, где MyHandlerService
реализует ErrorHandler
.